Struts2框架开发登录界面

来源:互联网 发布:you do not know js 编辑:程序博客网 时间:2024/04/28 07:57

为完成java web的实验自我尝试搭建Struts2框架,在配置环境中遇到了许多困难,特别是Struts2的jar包的导入。

开发环境:
Struts2 2.3.20.3(下载Struts2最新的包可以直接在官网下载:http://struts.apache.org/)
eclipse (java EE IDE)

在eclipse中new一个web project,命名loginDemo。

1.配置web.xml文件,在启动服务器时,服务器要根据这个文件去进行初始化。添加filter过滤器的配置。注意很多旧版本的用

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

Struts2 2.0+的版本都不用了的。

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns="http://java.sun.com/xml/ns/javaee"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"    id="WebApp_ID" version="3.0">    <display-name>loginDemo</display-name>    <filter>        <filter-name>struts2</filter-name>        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>    </filter>    <filter-mapping>        <filter-name>struts2</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping></web-app>

2.接下来就是配置struts.xml文件。这个文件就好像起着一个过滤器的作用,用户发来的请求要经过该文件的过滤,根据用户请求中所请求的处理类型,来选择相应的处理逻辑。

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" " http://struts.apache.org/dtds/struts-2.0.dtd"><struts>    <package name="struts" extends="struts-default">        <action name="login" class="action.LoginAction" method="excute">            <result name="success">/welcome.jsp</result>            <result name="error">/error.jsp</result>        </action>    </package></struts>

在struts.xml中,是采用package来管理各种action的。package标签中的namespace指定了该包的命名空间。extends是说当前这个包继承自struts-default包。
映射文件定义了名为login的Action。即当Action负责处理class中的URI客户端请求时,该Action调用method方法处理用户请求。

3.根据struts.xml的配置,我们需要创建一个登录页面login.jsp以及登录结果的welcome.jsp和error.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>登录页面</title></head><body>    <form action="login" method="post">        <p>用户名:<input type="text" name="username"></p>        <p>密 码:<input type="password" name="password"></p>        <p><input type="submit" name="sub" value="登录"></p>    </form></body></html>

4.实现控制器,在src目录下创建LoginAction.java

package action;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {    private String username;    private String password;    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public String excute() throws Exception {        if (getUsername().equals("admin") && getPassword().equals("123")) {            return "success";        } else {            return "error";        }    }}

5.最后说一下搭建Struts2框架环境,百度或者旧版本的书说Struts2的核心包只有lib文件夹下的Struts2-core.jar,xwork.jar,ognl.jar,common-logging.jar,freemarker.jar这5个必需的包,但是如果你在build path中的libraries中只添加这5个包就会报404错误。
你只需要在下载解压好的Struts包中apps中解压Struts-blank.war文件,然后在其里面的WEB-INF中的lib里面所有的jar文件(即Struts2核心jar包)拷进你所建立的project-WEB_INF-lib中。
注意:有时在Build path-libraries-add External JARS中添加后还是报错的话,就手动将核心包拷入WEB_INF-lib.

1 0