ITKeyword,专注技术干货聚合推荐

注册 | 登录

【Struts】Struts2简介及实现用户登录代码示例

u010929604 分享于 2017-04-01

推荐:Struts2 的简介

一.Struts2 的简介   ** 虽然 struts2 号称是一个全新的框架,但是这仅仅是相对于 struts1 而言的.   ** Struts2 和 struts1 相比,确实有很多革命性的改进,但是并

2020腾讯云共同战“疫”,助力复工(优惠前所未有!4核8G,5M带宽 1684元/3年),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1054

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

Struts2是由传统的Struts1和WebWork两个经典的MVC框架发展起来的,无论是从Struts2设计的角度来看,还是从Struts2在实际项目中的易用性来看,Struts2都堪称是一个非常优秀的MVC框架。 与传统的Struts1相比,Struts2允许使用普通的、传统的Java对象作为Action;Action的execute()方法不再与Servlet API耦合,因而更易于测试;支持更多的视图技术;基于AOP思想的拦截器机制,提供了极好的可扩展性;更强大、更易用的输入校验功能;并且将Ajax技术整合到了框架里面等等,这些都是Struts2具有更大的吸引力的原因所在。 下面我们来看一张经典的Struts2架构图: 对比着上面的图片,我们一起来简单了解下Struts2的执行流程:

 所有请求被Struts2核心控制器FilterDispather拦截

 根据ActionMapper提供的信息决定如何进行下一步

 ActionMapper主要依赖Struts2的配置文件struts.xml

 接下来为每个Action创建Action代理类ActionProxy

 执行ActionProxy的execute()方法

 在执行execute()方式时会逐个执行Struts2中的拦截器

 执行完成拦截器后才会真正执行目标Action

 目标Action需要返会转向的视图名称

 ActionProxy取得视图名称对象Result完成转向

 生成resposne对象完成本次请求 了解了Struts2框架的整体内容和执行流程,依旧以一个用户登录的示例来说明如何使用Struts2进行项目开发。 第一步:在MyEclipse中创建Java Web项目(需要注意的是Struts2需要运行在JRE1.5及其以上版本的环境中) 第二步:下载Struts2的开发包,并且将依赖包拷贝到WEB-INF/lib下(必要的jar如下) 第三步:在web.xml配置文件中,配置Struts2的核心控制器FilterDispatcher或者StrutsPrepareAndExecuteFilter,具体配置信息如下: <?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"

xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<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> </pre><p><span style="font-size:18px"><span style="white-space:pre"></span>第四步:提供struts2的配置文件struts.xml,放到源码文件src下</span></p><p><span style="font-size:18px"></span></p><p><span style="font-size:18px"><span style="white-space:pre"></span>第五步:编写Action源码文件和JSP页面,进行程序开发</span></p><p><span style="font-size:18px">

LoginAction</span></p><p><span style="font-size:18px"></span></p><pre code_snippet_id="1667602" snippet_file_name="blog_20160430_2_170036" name="code" class="java">public class LoginAction {

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 execute() throws Exception {

if (&quo

推荐:Struts2标签

采用OGNL表达式创建List/Map集合对象 如果需要一个集合元素的时候(例如List对象或者Map对象),可以使用OGNL中同集合相关的表达式。 使用如下代码直接生成一个L

t;admin".equals(username) && "admin".equals(password)) {

return "success";

}else {

return "error";

}

}

}

login.jsp <%@ page language="java" contentType="text/html; charset=GB18030"

pageEncoding="GB18030"%><!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=GB18030"><title>Insert title here</title></head><body>

<form action="login.action">

用户:<input type="text" name="username"><br>

密码:<input type="password" name="password"><br>

<input type="submit" value="登录">

</form></body></html>

login_success.jsp <%@ page language="java" contentType="text/html; charset=GB18030"

pageEncoding="GB18030"%><!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=GB18030"><title>Insert title here</title></head><body>

${username },登录成功</body></html>

login_error.jsp <%@ page language="java" contentType="text/html; charset=GB18030"

pageEncoding="GB18030"%><!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=GB18030"><title>Insert title here</title></head><body>

登录失败</body></html> 第六步:将开发好的Action类和JSP页面配置到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>

<!-- 需要继承struts-default包,这样就拥有的最基本的功能 -->

<package name="struts2" extends="struts-default">

<action name="login" class="com.bjpowernode.struts2.LoginAction">

<result name="success">/login_success.jsp</result>

<result name="error">/login_error.jsp</result>

</action>

</package></struts> 第七步:部署到Tomcat中,启动并且运行程序 小结一下; 从上面的例子中,不难发现,Struts2框架在实际开发中更加的便捷和高效,并且在Struts1的基础上有了很大的提升,但是Struts2依然是一个基于请求驱动的MVC框架,其核心设计来自于另一个MVC框架WebWork,是对WebWork的一个升级,并且与Struts1的体系结构有很大的区别,具体有哪些不同的地方,敬请期待下篇。

推荐:Struts2框架理解

     在学习Struts2之前我们先来了解一下什么是Struts2,先从宏观一步步深入理解struts2的框架模式。      定义:          Struts2是流行和成熟的基于MVC设计模

Struts2是由传统的Struts1和WebWork两个经典的MVC框架发展起来的,无论是从Struts2设计的角度来看,还是从Struts2在实际项目中的易用性来看,Struts2都堪称是一个非常优秀的MVC框架。 与传统的S

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。