简易Struts2登录实现
来源:互联网 发布:数据库零基础教程 编辑:程序博客网 时间:2024/05/22 17:36
简易Struts2登录实现
1. Struts2简介:
Struts有两个版本。
Struts1是最早的基于MVC模式的轻量级web框架,它能够合理地划分代码结构,并包含验证框架,国际化框架等多种实用工具框架。
随着技术的进步,Struts1的局限性也越多的暴露出来。Struts2是Struts1的下一代产品, 实在Struts1和webwork技术的基础上进行合并后的全新框架。
事实上,Struts1和Struts2在设计思想上是很不相同的。Struts2是以webwork为核心的,采用拦截器的机制来处理用户的请求。
所以,Struts2可以理解为是webwork的更新产品。
2. struts运行流程:
jsp请求à xml.xml(过滤)àstruts .xml(action请求路径)àjava(路径对应的控制器)à
struts.xml(result请求路径)àjsp(反馈请求结果)
3. 整个项目图:
使用到的相关知识:
驱动模型,JDBC,properties,struts标签
4. 源代码:
1. 导入jar包
2. Web.xml核心过滤器
<?xml version="1.0" encoding="UTF-8"?>
<web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"version="2.5">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- struts核心过滤器 -->
<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>
3. 数据库->user表
create table user(
id int primary key auto_increment,
username varchar(20) unique,
password varchar(18)
);
insert intouser(username,password) values('ww','123');
select * from user where username='ww' and password='123';
4.entity->User.java:
package entity;
public class User{
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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 String toString() {
return "User [id=" + id+ ", username=" + username + ", password="
+ password +"]";
}
}
5.utils->JDBCUtils
package utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class JDBCUtils {
private staticProperties prop;
static {
prop =new Properties();
/*InputStream in3=new FileInputStream(new File("./src/db.properties"));*/
try {
prop.load(JDBCUtils.class.getClassLoader().getResourceAsStream(
"db.properties"));
Class.forName(prop.getProperty("driver"));
}catch (Exception e) {
thrownew RuntimeException(e);
}
}
public staticConnection getConnection() {
try{
returnDriverManager.getConnection(prop.getProperty("url"),
prop.getProperty("username"),prop.getProperty("password"));
}catch (SQLException e) {
thrownew RuntimeException(e);
}
}
public staticvoid close(Connection conn,PreparedStatement prep,ResultSet rs){
if(rs !=null){
try{
rs.close();
}catch (SQLException e) {
e.printStackTrace();
}finally{
rs = null;
}
}
if(prep!= null){
try{
prep.close();
}catch (SQLException e) {
e.printStackTrace();
}finally{
prep = null;
}
}
if(conn!= null){
try{
conn.close();
}catch (SQLException e) {
e.printStackTrace();
}finally{
conn = null;
}
}
}
}
6.config->db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf-8
username=root
password=root
7.dao->UserDao.java
package dao;
import entity.User;
public interface UserDao {
public User getUser(String username,String password);//查找这个用户
}
8.dao.Impl->UserDaoImpl.java
package dao.impl;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importutils.JDBCUtils;
importdao.UserDao;
importentity.User;
public classUserDaoImpl implements UserDao{
private Connection conn;
private PreparedStatement prep;
private ResultSet rs;
public User getUser(String username,Stringpassword) {
try {
String sql="select * fromuser where username=? and password=?";
conn=JDBCUtils.getConnection();
prep=conn.prepareStatement(sql);
prep.setString(1, username);
prep.setString(2, password);
rs=prep.executeQuery();
if (rs.next()) {
User user=new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
return user;
}else {
return null;
}
} catch (Exception e) {
throw new RuntimeException(e);
}finally{
JDBCUtils.close(conn, prep,rs);
}
}
}
9.service->UserService.java
package service;
import entity.User;
public interfaceUserService {
public User getUser(String username,String password);//查找这个用户
}
10.service.impl->UserServiceImpl.java
package service.impl;
importdao.UserDao;
import dao.impl.UserDaoImpl;
importservice.UserService;
importentity.User;
public classUserServiceImpl implements UserService{
private UserDao userDao=new UserDaoImpl();
public User getUser(String username,String password) {
return userDao.getUser(username,password);
}
}
11.action->LoginAction.java
package action;
importservice.UserService;
importservice.impl.UserServiceImpl;
importcom.opensymphony.xwork2.ActionSupport;
importcom.opensymphony.xwork2.ModelDriven;
importentity.User;
public classLoginAction extends ActionSupport implements ModelDriven<User>{
private static final longserialVersionUID = 1L;
private UserService userService=newUserServiceImpl();
private User user=new User();
@Override
public String execute() throws Exception{
System.out.println(user.getUsername());
System.out.println(user.getPassword());
UseruserInfo=userService.getUser(user.getUsername(),user.getPassword());
System.out.println(userInfo);
if (userInfo!=null) {
return SUCCESS;
}else {
return ERROR;
}
}
public User getModel() {
return user;
}
}
12.config->user.xml
<?xmlversion="1.0" encoding="UTF-8" ?>
<!DOCTYPEstruts PUBLIC
"-//Apache Software Foundation//DTDStruts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="user"namespace="/" extends="struts-default">
<global-results>
<resultname="error">/error.jsp</result>
</global-results>
<action name="login"class="action.LoginAction">
<resultname="success">/success.jsp</result>
</action>
</package>
</struts>
13.src->struts.xml
<?xmlversion="1.0" encoding="UTF-8" ?>
<!DOCTYPEstruts PUBLIC
"-//Apache Software Foundation//DTDStruts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constantname="struts.i18n.encoding"value="UTF-8"></constant>
<constant name="struts.devMode"value="true"></constant>
<includefile="user.xml"></include>
</struts>
14.webRoot->login.jsp
<%@ pagelanguage="java" import="java.util.*"pageEncoding="UTF-8"%>
<%@ tagliburi="/struts-tags" prefix="s" %>
<!DOCTYPE HTMLPUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
<s:formaction="login.action">
<s:label>用户登录</s:label>
<s:textfield name="username"label="用户名"></s:textfield>
<s:textfield name="password"label="密码"></s:textfield>
<s:submit value="登录"></s:submit>
</s:form>
</body>
</html>
15.webRoot->success.jsp
<%@ pagelanguage="java" import="java.util.*"pageEncoding="UTF-8"%>
<%@ tagliburi="/struts-tags" prefix="s" %>
<!DOCTYPE HTMLPUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录成功</title>
</head>
<body>
用户信息:
用户名: <s:propertyvalue="username"/><br>
密码:<s:propertyvalue="password"/>
</body>
</html>
16.webRoot->error.jsp
<%@ pagelanguage="java" import="java.util.*"pageEncoding="UTF-8"%>
<%@tagliburi="/struts-tags" prefix="s" %>
<!DOCTYPE HTMLPUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>错误信息</title>
</head>
<body>
用户名或密码不正确
</body>
</html>
5. 运行结果:
登录页面:
成功页面:
错误页面:
此时,一个比较综合的Struts框架的登录页面就算完成了。可以根据自身需求不断扩展功能。
本内容由安康学院“雨季”原创!
- Struts2实现简易登录
- 简易Struts2登录实现
- 用Struts2开发简易登录界面
- jQuery实现简易登录框
- struts2,登录功能模块实现
- struts2实现登录
- Struts2实现登录流程
- Struts2实现登录
- 扫码登录的简易实现
- 简易QQ登录实现账号密码保存
- android实现登录注册简易代码
- Android实现简易登录界面详解
- struts2框架入门级Demo(简易用户登录)
- Struts2的基本项目实现、简易使用方法
- 20170918_chr_calActionchr Struts2实现简易计算器
- struts2 简单实现用户登录
- struts2框架实现登录案例
- Struts2 + MySql 数据库实现登录
- 《Java源码分析》:ReferenceQueue、Reference及其子类
- 逗号表达式小试
- Spring AOP
- WebMagic爬虫入门教程(二)一个完整的爬取动漫之家的实例
- Linux 在统治着计算机世界
- 简易Struts2登录实现
- Post 提交,参数太长解决方案
- PPT这样学就对了之半图型目录制作教程
- 工具-采集数据
- fopen函数、fopen_s函数、fclose函数、fscanf函数、memset函数、strcpy函数、strcpy_s函数、strcat函数和fprintf函数用法?
- xhprof 参数简介
- Swift 4.0 中的错误处理及抛出错误
- java SE 教程 10
- JS中的数组