【SSH高速进阶】——struts2简单的实例
近期刚刚入门struts2。这里做一个简单的struts2实例来跟大家一起学习一下。
本例实现最简单的登陆,仅包括两个页面:login.jsp 用来输入username与password;success.jsp 为登陆成功页面。error.jsp为登陆失败页面。
1、新建web项目“struts2”
2、引入jar包
下载struts2所需jar包 struts-2.3.24-all.zip
解压后将例如以下最主要的jar包导入到WebRoot/WEB-INF/lib下
3、在WebRoot下建立页面
login.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head></head> <body><form action="login">username:<input type="text" name="username" /><br>password:<input type="password" name="password" /><br><input type="submit" value="submit" /><br></form> </body>
</html>
此处form标签的action属性值指向的是以下struts.xml中的action标签的name属性,表示提交的表单由action标签中的class指向的LoginAction类来处理。
success.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head></head><body>恭喜您:${requestScope.username} 登陆成功<br/></body>
</html>
error.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head></head> <body>登陆失败</body>
</html>
3、配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><display-name></display-name> <welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list><!-- 此Filter目的是设置全部的请求都由Struts2来处理 --><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><!-- 全部请求都由Struts2来处理 --></filter-mapping>
</web-app>
此处用filter过滤器设置了不论什么client的请求都由struts2来处理(设置struts为请求分发器)
4、建立action
package com.danny.user.action;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() {if("admin".equals(username) && "admin".equals(password)){return "success";}else{return "error";}}
}
这个LoginAction用于处理登陆页面发来的数据。既然要处理数据,首先要接收数据,那么它是怎样接收到前台的数据的呢?
页面提交之后,去struts.xml中寻找相应action,进而找到LoginAction。LoginAction依据表单中input的name属性来获取值。规则就是:input的name属性值要和LoginAction中相相应的get、set方法后面的值一样。与LoginAction的字段没有关系:比方input的name属性值为“username”,那么LoginAction重相应的字段的get方法名应为“getUsername()”。所以这个LoginAction全然能够改成这样:
package com.danny.user.action;public class LoginAction {private String name;private String pwd;public String getUsername() {return name;}public void setUsername(String username) {this.name = username;}public String getPassword() {return pwd;}public void setPassword(String password) {this.pwd = password;}public String execute() {if("admin".equals(name) && "admin".equals(pwd)){return "success";}else{return "error";} }
}
LoginAction中的execute方法是每一个action必需要实现的方法,用于处理数据并返回要显示的界面。
5、配置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> <package name="struts2" extends="struts-default"> <!-- extends是继承的意思,struts-default位于struts2-core-2.3.24.jar.struts-default.xml --> <action name="login" class="com.danny.user.action.LoginAction"> <result name="success">/success.jsp</result> <result name="error">/error.jsp</result> </action> </package> </struts>
struts.xml中,每一个action相应一个action。这个name为”login”的action就相应com.danny.user.action包下的LoginAction。result的name相应于action的execute的返回值,假设返回”success”则跳转到success.jsp;假设返回”error”则跳转到error.jsp。
至此。部署项目,訪问localhost:8080/struts2,进入登陆页面:
登陆成功时,跳转到成功页面:
用户名、密码错误时,跳转到登陆失败页面:
整个步骤例如以下
【SSH高速进阶】——struts2简单的实例相关推荐
- Struts2简单入门实例
2019独角兽企业重金招聘Python工程师标准>>> 1.安装JDK7 以及Tomcat7.0,详细步骤见之前的一篇日志中的前两个步骤,以下是链接: http://my.oschi ...
- python进阶练习题:简单有趣#301:跳绳游戏【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
python进阶练习题:简单有趣#301:跳绳游戏[难度:2级]: 任务 有些孩子在玩跳绳游戏.儿童跳过绳子在大致相同的速度:每一次秒'.如果孩子跳时失败,他需要整理一下绳子,然后继续.这将需要3 s ...
- ajax 示例代码,Ajax的简单实用实例代码
我将实现一个简单的Ajax页面无刷新进行用户验证案例: 效果如下图: 实现主要过程: 在UsersAction类中的checkUser方法中接收并验证前台的表单数据,针对不同情况,返回一个状态码cod ...
- php ajax简单实例代码,Ajax的简单实用实例代码
这篇文章主要介绍了Ajax的简单实用实例代码,对ajax感兴趣的朋友可以参考下Ajax的简单实用的方法 我将实现一个简单的Ajax页面无刷新进行用户验证案例: 效果如下图: 实现主要过程: 在User ...
- SSH+ExtJs4开发项目的Demo实例视频讲解
大家好.应大家的需求和一些迷茫的人不知道如何去ExtJs开发.所以我做了一套视频和源码共享一下.分享一下经验. 搭建了SSH的框架.因为我在网上找SSH的时候.都只有一个Demo的实例.本身真正的作用 ...
- 工作流(activiti7)-进阶使用(流程实例,个人任务,组任务)(三)
工作流(activiti7)教程-简单的介绍和使用(一) 工作流(activiti7)教程-简单的介绍和使用(二) 工作流(activiti7)-进阶使用(流程实例,个人任务,组任务)(三) 工作流( ...
- eclipse ssh mysql数据库_Eclipse搭建SSH环境实现Struts2分页显示mysql数据库表中内容...
摘要 因运行后404错误,遂选择集成好SSH框架的MyEclipse开发工具: 最终实现了Struts2框架的分页查看学员信息,Spring3和Hibernate3的尝试宣告失败. 1.本项目的环境 ...
- 深入实践Spring Boot1.3.2 一个简单的实例
1.3.2 一个简单的实例 Spring Boot的官方文档中提供了一个最简单的Web实例程序,这个实例只使用了几行代码,如代码清单1-3所示.虽然简单,但实际上这已经可以算作是一个完整的Web项目了 ...
- [Dask使用实例]Dask简单计算实例(map, submit)
Dask简单计算实例 from dask.distributed import Client if __name__ == '__main__':client = Client()a = client ...
最新文章
- Resources与StreamingAssets文件夹的区别
- View的setOnClickListener的添加方法
- Unity3D与JSP TomCatserver传递数据和文件( 二 ) Unity3D向java传输表单
- 文章内容分页功能实现
- fcm脑图像分割matlab,MATLAB程序:用FCM分割脑图像
- 爬虫 requests 模块
- 计算机网络中流的定义,计算机网络的基本概念-Read.PPT
- android搜索框布局文件,android搜索框列表布局,流程及主要步骤思维导图
- Scratch少儿编程案例~走迷宫游戏
- 计算机视觉SIFT算法详解
- 专访阿里云游戏首席架构师李刚:如何解决云服务技术两大痛点?
- 黑苹果 MacOS 10.15 Catalina 安装详细教程带工具资料
- 电脑突然间变卡的解决办法
- 一周肝出Linux之远程服务详解(ssh远程登录、scp远程复制、sftp安全下载、TCP Wrappers访问控制)
- 【bzoj1123】[POI2008]BLO
- oceanus-58总体框架理解
- 行人检测系统中的行人特征及检测方法
- java植物大战僵尸_植物大战僵尸java游戏
- C语言俄罗斯方块删除某一行,俄罗斯方块消除满格问题,消除一行后出了问题...
- 战地1进服务器显示无法部署,战地1无法加入服务器 发生了未知错误 | 手游网游页游攻略大全...
热门文章
- 如何将MATLAB程序发布为独立的不依赖MATLAB环境可执行的程序包(基于Matlab R2015b版 )
- (56)zabbix Screens视图配置
- 【PHP】文件写入和读取详解
- TensorFlow: couldn’t open CUDA library cupti64_80.dll、InternalError: Blas SGEMM launch failed
- 对lua协程的一点理解
- 面经——嵌入式软件工程师ARM体系与架构相关
- python列表遍历 空列表_Python list列表执行reversed()后执行pop()返回迭代对象遍历为空问题...
- ajax反序列化出错,将数据从jquery ajax请求传递给wcf服务失败了反序列化?
- android xml获取指定,android:如何从xml文件中获取信息?
- 设计模式之模版方法模式的钩子方法