java中struts配置_java

1.了解struts

Struts2框架中核心组件就是Action、拦截器等,Struts2框架使用包来管理Action和拦截器等。每个包就是多个Action、多个拦截器、多个拦截器引用的集合。
在struts.xml文件中package元素用于定义包配置,每个package元素定义了一个包配置。它的常用属性有:
l name:必填属性,用来指定包的名字。
l extends:可选属性,用来指定该包继承其他包。继承其它包,可以继承其它包中的Action定义、拦截器定义等。
l namespace:可选属性,用来指定该包的命名空间。

2.配置struts

  首先新建一个web项目,在右击一个项目,选择myeclipse下add struts
在选择 struts2.1 单击下一步在选择自己所需要的包 在保存

3.修改用户登录验证示例,多增加一个注册用户功能。

1.       修改Action类:

package org.qiujy.web.struts2.action;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

/**
*@authorqiujy
*@version1.0
*/
publicclass LoginAction extends ActionSupport{
  private String userName;
  private String password;

  private String msg; //结果信息属性

  /**
   *@returnthemsg
   */
  public String getMsg() {
    returnmsg;
  }
  /**
   *@parammsgthemsgtoset
   */
  publicvoid setMsg(String msg) {
    this.msg = msg;
  }
  /**
   *@returntheuserName
   */
  public String getUserName() {
    returnuserName;
  }
  /**
   *@paramuserNametheuserNametoset
   */
  publicvoid setUserName(String userName) {
    this.userName = userName;
  }
  /**
   *@returnthepassword
   */
  public String getPassword() {
    returnpassword;
  }
  /**
   *@parampasswordthepasswordtoset
   */
  publicvoid setPassword(String password) {
    this.password = password;
  }

  /**
   *处理用户请求的login()方法
   *@return结果导航字符串
   *@throwsException
   */
  public String login() throws Exception{
    if("test".equals(123) && "test".equals(123)){
      msg = "登录成功,欢迎" + 123;
      //获取ActionContext实例,通过它来访问Servlet API
      ActionContext context = ActionContext.getContext();
      //看session中是否已经存放了用户名,如果存放了:说明已经登录了;
//否则说明是第一次登录成功
      if(null != context.getSession().get("uName")){
        msg = this.userName + ":你已经登录过了!!!";
      }else{
        context.getSession().put("uName", this.userName);
      }

      returnthis.SUCCESS;
    }else{
      msg = "登录失败,用户名或密码错";
      returnthis.ERROR;
    }
  }

  public String regist() throws Exception{
    //将用户名,密码添加到数据库中
    //...
    msg = "注册成功。";
    returnthis.SUCCESS;
  }
}

2.       struts.xml文件:没有什么变化,跟以前一样配置

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
  <package name="my" extends="struts-default" namespace="/manage">
  <!-- 定义处理请求URL为login.action的Action -->
    <action name="userOpt" class="org.qiujy.web.struts2.action.LoginAction">
    <!-- 定义处理结果字符串和资源之间的映射关系 -->
      <result name="success">/success.jsp</result>
      <result name="error">/error.jsp</result>
    </action>
  </package>
</struts>

3.       页面:
index.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<html>
<head>
  <title>用户登录页面</title>
</head>

<body>
 <h2>用户入口</h2>
 <hr>
  <form action="manage/userOpt!login.action" method="post">
  <table border="1">
     <tr>
       <td>用户名:</td>
       <td><input type="text" name="userName"/></td>
     </tr>
     <tr>
       <td>密码:</td>
       <td><input type="password" name="password"/></td>
     </tr>
     <tr>
       <td colspan="2">
         <input type="submit" value=" 确定 "/>
       </td>
     </tr>
  </table>
  </form>
</body>
</html>

regist.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<html>
<head>
  <title>用户注册页面</title>
</head>

<body>
 <h2>用户注册</h2>
 <hr>
  <form action="manage/userOpt!regist.action" method="post">
  <table border="1">
     <tr>
       <td>用户名:</td>
       <td><input type="text" name="userName"/></td>
     </tr>
     <tr>
       <td>密码:</td>
       <td><input type="password" name="password"/></td>
     </tr>
     <tr>
       <td colspan="2">
         <input type="submit" value=" 注册 "/>
       </td>
     </tr>
  </table>
  </form>
</body>
</html>

现在就可以使用sturts。

以上所述就是本文的全部内容了,希望大家能够喜欢。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
struts配置
java struts配置、web.xml中配置struts2、struts2中action配置、eclipse中配置struts2、struts1中action配置,以便于您获取更多的相关知识。

时间: 2024-10-30 07:42:22

java中struts配置_java的相关文章

java中struts 框架的实现_java

该文章主要简单粗暴的实现了struts的请求转发功能. 其他的功能后续会慢慢补上. 最近在学习javassist的内容,看到一篇文章  大家一起写mvc  主要简单的描述了mvc的工作流程,同时实现了简单的struts2功能. 这里仿照的写了个简单的struts2框架,同时加上了自己的一些理解. 该文章主要简单粗暴的实现了struts的请求转发功能. 其他的功能后续会慢慢补上. 首先,在struts2框架中,请求的实现.跳转主要是通过在struts.xml进行相关配置. 一个<action>标

详解slf4j+logback在java工程中的配置_java

本文主要介绍一下slf4j+logback在java工程中的配置,面向的读者主要是已经对slf4j+logback有一定了解的同学,但是在文章开头也做了一些知识铺垫,下面咱们进入正题. 在介绍slf4j+logback配置之前,首先对日志组件logback进行介绍. (一)日志组件logback的介绍及配置使用方法一.logback的介绍     Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic

详解Java中native关键字_java

 一. 什么是Native Method   简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C.这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数.    "A native method is a Java method whose implementatio

全面解析Java中的引用类型_java

如果一个内存中的对象没有任何引用的话,就说明这个对象已经不再被使用了,从而可以成为被垃圾回收的候选.不过由于垃圾回收器的运行时间不确定,可被垃圾回收的对象的实际被回收时间是不确定的.对于一个对象来说,只要有引用的存在,它就会一直存在于内存中.如果这样的对象越来越多,超出了JVM中的内存总数,JVM就会抛出OutOfMemory错误.虽然垃圾回收的具体运行是由JVM来控制的,但是开发人员仍然可以在一定程度上与垃圾回收器进行交互,其目的在于更好的帮助垃圾回收器管理好应用的内存.这种交互方式就是使用J

深入理解Java中的克隆_java

前言 Java克隆(Clone)是Java语言的特性之一,但在实际中应用比较少见.但有时候用克隆会更方便更有效率. 对于克隆(Clone),Java有一些限制:       1.被克隆的类必须自己实现Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制.Cloneable 接口实际上是个标识接口,没有任何接口方法.       2.实现Cloneable接口的类应该使用公共方法重写 Object.clone(它是受保护的).某个对象实现了此接口就

Java中Finally关键字_java

final:禁止多态开关~ 修饰变量:变量不能被改变 修饰类:类不能被继承 修饰方法:方法不能被重写 finally:用在异常处理的最后一个语句块 无论是否产生异常都要被执行~~~ Java代码 public final class FinallyTest { public static void main(String[] args) { try { throw new NullPointerException(); } catch (NullPointerException e) { Sys

深入理解Java中的接口_java

一. 为什么要使用接口 假如有一个需求:要求实现防盗门的功能.门有"开"和"关"的功能,锁有"上锁"和"开锁"的功能. 分析:首先防盗门是一个门,门有开门和关门的功能,还有一把锁,锁有开锁和上锁,按照面向对象的编程的思想,我们会将门和锁都作为一个类而单独存在,但是,不能让防盗门继承自门的同时又继承自锁,防盗门不是锁,不符合继承中is a的关系,在java中支持单继承.那么我们如何来解决这一问题,这时就要用到接口. 二. 什么是

彻底理解Java中this 关键字_java

this关键字再java里面是一个我认为非常不好理解的概念,:)也许是太笨的原因 this 关键字的含义:可为以调用了其方法的那个对象生成相应的句柄. 怎么理解这段话呢? thinking in java里面有这么一个例子 有两个同一个类型的对象,分别叫做a和b,那我们怎样区别在调用方法f()的时候,是谁再调用这个方法呢? 例如: class Banana { void f(int i){ /***方法主体*****/ } } Banana a = new Banana();//生成Banana

解析java中volatile关键字_java

在java多线程编程中经常volatile,有时候这个关键字和synchronized 或者lock经常有人混淆,具体解析如下: 在多线程的环境中会存在成员变量可见性问题: java的每个线程都存在一个线程栈的内存空间,该内存空间保存了该线程运行时的变量信息,当线程访问某一个变量值的时候首先会根据这个变量的地址找到对象的堆内存或者是栈堆存(原生数据类型)中的具体的内容,然后把这个内同赋值一个副本保存在本线程的线程栈中,紧接着对这个变量的一切操作在线程完成退出之前都和堆栈内存中的变量内容是没有关系