JSP的Struts2框架实现数据库连接的登录验证界面

框架这东西刚开始看真的是一脸懵逼,用struts2做了一个简单的登录小功能,现在对于框架已经是十分明朗了

【全文借鉴于:Struts2+MySql,又更改为连接SqlServer数据库】

在Eclipse上开发的Dynamic Web Project

使用的tomcat-7.0.73和struts2.5.16

配置好tomcat这个自然不用说,教程网上全都是


首先配置好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>index.jsp</welcome-file>
  </welcome-file-list>
  <filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>
  		org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
  	</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>*.action</url-pattern>
  </filter-mapping></web-app>

******

拦截器的写法可以在包中查看


******

然后是jsp文件,共有3个


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>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->
  </head>
  
  <body>
    <form action="login.action" method="post">
    	姓名:<input type="text" name="username"/><br/>
    	密码:<input type="text" name="password"/><br/>
    	<input type="submit" value="登录"/>
    	<input type="submit" value="注册"/>
    </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>
    <base href="<%=basePath%>">
    
    <title>My JSP 'success.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

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


fail.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>
    <base href="<%=basePath%>">
    
    <title>My JSP 'fail.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    登陆失败,请重新登陆!
  </body>
</html>


之后引入struts2框架的jar包并且配置struts2.xml

struts2.xml配置【注意:struts.xml必在Java Resource下的src目录下】

struts2.xml的配置借鉴:struts2配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<package name="default" extends="struts-default" namespace="/">
		<action name="login" class="action.UsersAction">
			<result name="success">/success.jsp</result>
			<result name="fail">/fail.jsp</result>
		</action>
	</package>
</struts>


最后写好5个类,包和类的部署如下图

UserAction.java

package action;

import service.UsersService;

import com.opensymphony.xwork2.ModelDriven;

import entity.Users;

public class UsersAction implements ModelDriven<Users>{
	private Users user=new Users();
	public Users getModel() {
		// TODO Auto-generated method stub
		return user;
	}
	public String execute(){
		UsersService userce=new UsersService();
		if(userce.userlogin(user)){
			return "success";
		}
		return "fail";
	}

}


UserInfoDao.java

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import until.Dbutil;
import entity.Users;

public class UserInfoDao {
	public boolean Login(Users u){
		Connection con=null;
		PreparedStatement pst=null;
			boolean flag = false;
			ResultSet rst = null;
			con=Dbutil.getCon();
			try {
				pst = con.prepareStatement("select * from users where username=? and password=?");
				pst.setString(1, u.getUsername());
				pst.setString(2, u.getPassword());
				rst = pst.executeQuery();
				if (rst.next()) {
					int result = rst.getInt(2);
					flag = result >=1 ? true : false;
				} else {
					flag = false;
				}

			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				Dbutil.closeResultSet(rst);
				Dbutil.closeStatement(pst);

			}
			return flag;
		}
}


User.java

package entity;

public class Users {
	private String username;
	private String password;
	public Users(String username, String password) {
		super();
		this.username = username;
		this.password = password;
	}
	public Users() {
		super();
	}
	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;
	}	
}


UserService.java

package service;

import dao.UserInfoDao;
import entity.Users;

public class UsersService {
	UserInfoDao user=new UserInfoDao();
	public boolean userlogin(Users us){
		return user.Login(us);
	}
}


Dbutil.java

package until;

import java.sql.*;
public class Dbutil {
	
	private static final String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
	private static final String url="jdbc:sqlserver://localhost:1433;integratedSecurity=true;DataBaseName=userinfo";
	private static Connection con = null;
	//建立与数据库的连接
	public static Connection getCon(){
		try
		{
			Class.forName(driver);   
			//con = DriverManager.getConnection(url,user,pwd);
			con = DriverManager.getConnection(url);
			
		}catch(Exception e)
		{
			e.printStackTrace();
		}
		
		return con;
	}
	//关闭Connection
	public static void closeCon(Connection con){
		try
		{
			if(con!=null)
				con.close();
		}catch(Exception e)
		{
			e.printStackTrace();
		}
	}
	
	//关闭ResultSet
	public static void closeResultSet(ResultSet rst){
		try
		{
			if(rst!=null){
				rst.close();
				rst = null;
			}
		}catch(Exception e)
		{
			e.printStackTrace();
		}
	
	}
	
	//关闭Statement
	public static void closeStatement(Statement pst){
		try
		{
			if(pst!=null){
				pst.close();
				pst = null;
			}
		}catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}

完成


PS.配置这个项目花了3天时间,头都快炸了,希望各位道友顺利!

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值