使用struts2进行登录功能的开发
使用struts2进行登录功能的开发
一、 设计需求
使用idea和maven开发具有登录功能的web应用,java语言,使用struts2框架。
二、 设计步骤
1.使用idea创建maven应用,利用maven的webapp模板
填入groupId和ArtifactId后进行下一步,选择maven位置和属性,一般idea会自动读取,之后设置项目位置。
创建成功后,在pom.xml中加入struts2
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.14</version>
</dependency>
</dependencies>
2.目录结构如图
3.创建控制层login.java
不需要继承自任何的类,需要定义函数,struts2的入口函数,类似与main函数
public String execute()
login.java源代码为:
package com.hyp.controller; import com.hyp.model.UserinfoService; /**
* @author hyp
* Project name is LearnStruts
* Include in com.hyp.controller
* hyp create at 2018/7/14
**/
public class login {
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()
{
UserinfoService userinfoService=new UserinfoService(); if (userinfoService.login(username,password))
{
return "toOKJSP";
}else
{
return "toNOJSP";
}
}
}
4.业务层UserinfoService.java
登录的核心功能,这里进行简化
package com.hyp.model; /**
* @author hyp
* Project name is LearnStruts
* Include in com.hyp.model
* hyp create at 2018/7/14
**/
public class UserinfoService {
public boolean login(String username, String password) {
if ("hyp".equals(username)&&"123".equals(password))
{
return true;
}
return false;
}
}
5.创建视图文件login.jsp
<%--
Created by IntelliJ IDEA.
User: hyp
Date: 2018/7/14
Time: 17:15
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>login</title>
</head>
<body>
<form action="login.action" method="post">
username:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
6.在WEB-INF/classes下创建struts.xml文件
设置登录后的页面跳转,struts.devMode是指开发模式,报错信息输出较完整,<package name="struts2login" extends="struts-default">定义一个包,及继承默认的配置。<action name="login" class="com.hyp.controller.login">定义action名, 以及实现的类。Result是对返回结果的一个处理。
<?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.devMode" value="true"/>
<package name="struts2login" extends="struts-default">
<action name="login" class="com.hyp.controller.login">
<result name="toOKJSP">/ok.jsp</result>
<result name="toNOJSP">/no.jsp</result>
</action>
</package> </struts>
Web.xml中是
<web-app>
<display-name>Archetype Created Web Application</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>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.js</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
no.jsp和ok.jsp内容自定。
运行结果如图:
会根据输入进行跳转。
最新文章
- kinect driver install (ubuntu 14.04 &; ros-indigo)
- 找到一个Flex中LineChart很好的学习博客
- Asp文件锁定脚本
- Oracle 12c与GoldenGate 12c的一些问答
- Delphi richedit获取选中文字
- C#总结(四)调用C++动态库
- linux shell编程语句if、case.
- myeclise2017安装包及破解文件
- 通配符 Globbing赏析
- ansible笔记(5):常用模块之文件操作(二)
- jquery实现同时展示多个tab标签+左右箭头实现来回滚动
- security相关链接整理
- C-Free 5 安装 [Error] G__~1.EXE: (x86)\C-FREE~1\mingw\mingw32\bin\: No such file or directory
- c#按照指定长度切分字符串
- bootstrap滑动开关插件使用
- JavaScript事件简述
- conductor元数据定义
- HDU 1079 Calendar Game(博弈找规律)
- Bzoj 3498 Cakes(三元环)
- python之websocket