一个简单登录例子

来源:互联网 发布:笔记本装机必备软件 编辑:程序博客网 时间:2024/06/04 18:56

开发前的配置

WEB-INF文件夹下的web.xml文件内容
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">  <display-name>Test</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>
src文件夹下的struts.xml文件内容
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts>    <constant name="struts.enable.DynamicMethodInvocation" value="false" />    <constant name="struts.devMode" value="true" />    <constant name="struts.custom.i18n.resources" value="test"/>    <package name="default" namespace="/" extends="struts-default">                    </package>    </struts>



在eclipse中用struts2做一个登录的小例子

WebContent文件夹中创建一个content文件夹,我们把所有的视图文件都放在那里,在content中创建一个TestLogin.jsp文件
TestLogin.jsp文件的内容如下
<!-- 编码格式是UTF-8的,因为要有中文 --><%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!-- 引入struts2的标签库 --><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE html><html><head><meta charset="utf-8"><title>测试登录</title></head><body>这是登录的测试页面<!-- struts的表单标签,它的action是testLogin --><s:form action="TestLogin"><!-- 下三个分别是文本框的标签、密码的标签和提交按钮的标签 --><s:textfield name="username" key="user"/><s:password name="password" key="pass"/><s:submit key="login"></s:submit></s:form></body></html>

之后我们在content文件夹下在创建两个jsp文件,分别命名为error.jsp和success.jsp用来显示登录错误和登录成功的页面,文件内容如下
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><!-- 错误页面与之类似 -->这是成功页面</body></html>

之后我们在src文件夹下创建一个action文件夹,在那个文件夹中创建一个TestAction.java文件,改文件的内容如下
package action;import com.opensymphony.xwork2.ActionSupport;public class TestAction 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;}@Overridepublic String execute() throws Exception {//当访问那个action的时候会默认会运行这个方法System.out.println("这里是TestLogin的execute方法");//在表单中我们已经通过name指定了与之对应的参数,//所以这里的getUsername()和getPassword()会得到我们刚刚输入的内容if(getUsername().equals("admin") && getPassword().equals("123")) {//简单的判断是否用户名密码输入正确//这里的SUCCESS和ERROR在继承的ActionSupport中定义了的//它的值实际上就是"success"和"error"System.out.println(SUCCESS);return SUCCESS;} else {return ERROR;}}}

之后在src文件夹下的struts.xml文件中加入映射,使之访问TestLogin的时候能够映射到TestAction这个类中去,修改之后的xml文件内容是这样的
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts>    <constant name="struts.enable.DynamicMethodInvocation" value="false" />    <constant name="struts.devMode" value="true" /><constant name="struts.custom.i18n.resources" value="test"/><!-- 在默认的包中 -->    <package name="default" namespace="/" extends="struts-default"><!-- action名字是TestLogin,当表单的action为TestLogin是就会访问到这里的class所对应的类 --><!-- 注意这里的class的类必须是继承了ActionSupport的 -->        <action name="TestLogin" class="action.TestAction">        <!-- 如果action类返回一个success字符串 -->        <result name="success">        <!-- 就跳跳转到这个文件中 -->        /content/success.jsp        </result><!-- 如果返回结果是error的话 -->        <result name="error">        /content/error.jsp        </result>        </action>                    </package>    </struts>
以下是文件结构



0 0