您的位置:首页 > 编程语言 > Java开发

structs2入门 用户登录案例

2016-10-09 16:09 483 查看

structs2用户登录的实现过程

 1 jsp出发action

 2 struts2拦截请求,调用后台action

 3 action返回结果,由不同的jsp展现数据

1、需要的jar包



  前面两个是apache commons的jar包,暂且忽略

  freemarker提供了另一种展现方式

  ognl提供了OGNL表达式

  struts2-core提供struts2核心包

  xwork-core由于struts2很多事基于webwork的,因此也需要这个的核心包

  

把上面的包导入web-inf下的lib文件夹中,构建路径(building path)

2、配置struts2的struts.xml文件

struts.xml文件的位置放置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>
<!-- 指定默认编码集 ,作用于HttpServletRequest的setCharacterEncoding()和freemarker,vilocity的输出 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 当struts配置文件修改时是否自动加载 -->
<constant name="struts.configuration.xmlreload" value="true"/>
<!-- 开发模式下打印详细的错误信息,默认为false -->
<constant name="struts.devMode" value="true"/>
<!-- 标准的UI主题,默认的UI主题为xhtml,可以为simple,xhtml或ajax -->
<constant name="struts.ui.theme" value="xhtml"/>
<!-- package中需要注意namespace的值代表命名空间  其中可能会有action等组件,在jsp连接action的url路径是namespace+action的name.action -->
<package name="alleged" namespace="/cx" extends="struts-default">
<action name="login_*" class="com.frame.action.UserLogin" method="{1}">
<!-- 当UserLogin检验成功后跳转到hello.jsp 检验失败跳转到error.jsp -->
<result name="success">/WEB-INF/pages/hello.jsp</result>
<result name="error">/WEB-INF/pages/error.jsp</result>

</action>
</package>
</struts>


3、com.frame.action包下的action类UserLogin.java

package com.frame.action;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;

import com.opensymphony.xwork2.ActionSupport;

public class UserLogin extends ActionSupport implements ServletResponseAware, ServletRequestAware {
private HttpServletRequest request;
private HttpServletResponse response;
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;
}

@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}

@Override
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}

@Override
public String execute() throws Exception {
System.out.println("ggag");
if (getUsername().equals("alleged") && getPassword().equals("root")) {
request.setAttribute("username", "tiantian");
return SUCCESS;

4000
} else {
return ERROR;
}
}
}


4 、对应的jsp页面

index.jsp 在webContent目录下

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 引用structs2 的标签 -->
<%@taglib prefix="s" uri="/struts-tags"%>
<!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>
<s:form action="cx/login.action" validate="true">
<s:textfield name="username" key="用户名"/>
<s:textfield name="password" key="密码"/>
<s:submit key="login"/>
</s:form>
</body>
</html>


hello.jsp error.jsp 在web-inf目录下的pages文件夹中

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!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>Insert title here</title>
</head>
<body>
<label>欢迎你:${username}</label>
</body>
</html>


<%@ 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>Insert title here</title>
</head>
<body>
<h1>出错了</h1>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts