码迷,mamicode.com
首页 > 其他好文 > 详细

struts2 的第一个程序:登陆页面

时间:2015-06-17 09:49:51      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:java web


首先,需要搭建环境,导入jar包,把struts2文件中app文件夹下的实例中lib中的包复制到项目的lib目录下

同时将struts.xml放到src目录下

然后配置web.xml

 <filter>
  	<filter-name>Struts2Filter</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  	 <filter-name>Struts2Filter</filter-name>
  	 <url-pattern>/*</url-pattern>
  </filter-mapping>


如果是通过手动添加的,这些均可自动配置

项目右键-->myeclipse-->add struts.......选择添加即可


打开struts.xml文件:按alt+/提示元素

struts2有如下提示元素:

技术分享

解释一下这几个标签

        <!-- 创建一个JavaBean实例 -->
	<bean class=""></bean>
	
	<!-- 用于Struts2默认行为配置的标签 -->
	<constant name="" value=""></constant>
	
	<!-- 包标签, 用于区分不同的请求文件的标签, 如网站前台请求,网站后台请求 -->
	<package name=""></package>
	
	<!-- 用于引入其他xml配置文件 -->
	<include file=""></include>


主要的constant配置文件

	<!-- 配置web默认编码集,相当于HttpServletResponse.setChartacterEncoding -->
	<constant name="struts.i18n.encoding" value="UTF-8"></constant>
	<!-- 默认Struts2的请求后缀是.action,也就是不配置该元素,action/do都可以 -->
	<constant name="struts.action.extension" value="action,do"></constant>
	<!-- 设置浏览器是否缓存静态内容,默认值为true,开发阶段建议关闭 -->
	<constant name="struts.serve.static.browserCache" value="false"></constant>
	<!-- 当struts配置文件修改后,系统是否重新加载该文件,默认为false -->
	<constant name="struts.configuration.xml.reload" value="true"></constant>
	<!-- 开发模式下,可以打印出更加详细的错误 -->
	<constant name="struts.devMode" value="true"></constant>
	<!-- 默认视图主题 -->
	<constant name="struts.ui.theme" value="simple"></constant>


package:

	<!-- name属性:包名, 用于被别的包调用或继承
		extends: 继承哪个包,会继承该包下配置信息和拦截器等等
		namespace: 选填,url连接必须加入/new/action.xxx
		 -->
	<package name="test" namespace="/new" extends="struts-default" >
	</package>


新建如下文件:

技术分享


在LoginAction.java中加入:

package com.jike.action;

public class LoginAction {
	private String username;
	private String password;
	
	public String execute(){
		if(username.equals("admin") && password.equals("123")){
			return "success";
		}else{
			return "fail";
		}
	}
	
	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;
	}
	
	
}


在index.jsp中加入如下代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  
  <body>
    <form action="<%=path %>/new/login.action" method = "post">
    	用户名:<input type="text" name="username" /><br/>
    	密码:<input type="password" name = "password"/><br/>
    	<input type="submit" value="提交"><br/>
    </form>
  </body>
</html>


在success.jsp中加入:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

  </head>
  
  <body>
    登陆成功 <br>
  </body>
</html>


fail.jsp改为“登陆失败,其他不变”


具体的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>
	<!--bean 创建一个JavaBean实例 -->
	<!--constant 用于Struts2默认行为配置的标签 -->
	<!--package 包标签, 用于区分不同的请求文件的标签, 如网站前台请求,网站后台请求 -->
	<!--include 用于引入其他xml配置文件 -->
	
	<!-- 配置web默认编码集,相当于HttpServletResponse.setChartacterEncoding -->
	<constant name="struts.i18n.encoding" value="UTF-8"></constant>
	<!-- 默认Struts2的请求后缀是.action,也就是不配置该元素,action/do都可以 -->
	<constant name="struts.action.extension" value="action,do"></constant>
	<!-- 设置浏览器是否缓存静态内容,默认值为true,开发阶段建议关闭 -->
	<constant name="struts.serve.static.browserCache" value="false"></constant>
	<!-- 当struts配置文件修改后,系统是否重新加载该文件,默认为false -->
	<constant name="struts.configuration.xml.reload" value="true"></constant>
	<!-- 开发模式下,可以打印出更加详细的错误 -->
	<constant name="struts.devMode" value="true"></constant>
	<!-- 默认视图主题 -->
	<constant name="struts.ui.theme" value="simple"></constant>
	
	
	<!-- name属性:包名, 用于被别的包调用或继承
		extends: 继承哪个包,会继承该包下配置信息和拦截器等等
		namespace: 选填,url连接必须加入/new/action.xxx
		 -->
	<package name="test" namespace="/new" extends="struts-default">
		<!-- action相当于Servlet的概念,对应一个请求,name为请求的url 
			localhost:8080/项目名/new/login.do
		-->
		<action name="login" class="com.jike.action.LoginAction">
			<result name="success">/success.jsp</result>
			<result name="fail">/fail.jsp</result>
		</action>
	</package>
	
</struts>


Http请求流转流程:

技术分享



配置文件连接点:

技术分享




极客学院:http://www.jikexueyuan.com/course/697_2.html?ss=2

最后两张图像截取自原视频。


struts2 的第一个程序:登陆页面

标签:java web

原文地址:http://4440271.blog.51cto.com/4430271/1662565

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!