javaweb简单登录验证功能

打开esplise,新建DynamicWeb项目
在src目录下建立Model的package
在package中建立User类
首先创建User类

package Model;

public class User {
	private int id;
	private String username;
	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
	}
	public User()
	{
		super();
	}
	public User(int id, String username, String password) {
		super();
		this.id = id;
		this.username = username;
		this.password = password;
	}
	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;
	}

}

配置web.xml,在WEB-INF下面如果没有请创建在这里插入代码片

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>day8</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  	<servlet>
	    <!-- 配置前端过滤器 -->
		<servlet-name>springmvc</servlet-name>
		<servlet-class>
              org.springframework.web.servlet.DispatcherServlet
         </servlet-class>
		<!-- 初始化时加载配置文件 -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springmvc-config.xml</param-value>
		</init-param>
		<!-- 表示容器在启动时立即加载Servlet -->
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springmvc</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
</web-app>

建立登录界面login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/day8/toLogin">
		用户名:<input type="text" name="username"><br/>
		密码:<input type="text" name="password"><br/>
		<input type="submit" value="注册">
		  <br/>${msg}
	</form>
</body>
</html>

登录之后的界面index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<center>
当前用户:${user_session.username}
<br>
<a href="/day8/Logout">退出登录</a>
</center>
</body>
</html>

Controller控制器UserController,新建controller的package

package controller;

import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import Model.User;

@Controller
public class UserController {
	@RequestMapping("/index")
	public String toIndex()
	{
		return "index";
		
	}
	@RequestMapping("/toLogin")
	public String toLogin(User user,Model model,HttpSession session)
	{
		//
		//拿用户名和密码
		String username=user.getUsername();
		String password=user.getPassword();
		//判断用户名和密码是否真确
		if(username!=null&&username.equals("admin"))
		if(password!=null&&password.equals("1"))
		//用户信息真确,在session放入数据
		{
			session.setAttribute("user_session", user);
			return "index";
		}
		model.addAttribute("msg","应户名或者密码出错误");
		return "login";
		
	}
	@RequestMapping("/login")
	public String login()
	{
		return "index";
		
	}
	//用户登录
	@RequestMapping("/Logout")
	public String logout(HttpSession session)
	{
		session.invalidate();
		return "login";
		
	}
}

新建package,名字为Interceptor,建立 拦截器logininterceptor.java

package controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import  Model.User;

public class logininterceptor implements HandlerInterceptor {

	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {
		// TODO Auto-generated method stub

	}

	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {
		// TODO Auto-generated method stub

	}

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
		// TODO Auto-generated method stub
		//得到当前请求url
		String url=request.getRequestURI();
		//对登录跳转路径和登录处理路径发行
		if(url.indexOf("/toLogin")>0||url.indexOf("/login")>0)
		{
			return true;
		}
		HttpSession session=request.getSession();
		session.getAttribute("user_session");	
		User user=(User)session.getAttribute("user_session");
		if(user!=null)
		{
			return true;
		}
		
		request.setAttribute("msg", "plesae denglu");
		//登录着不存在,跳转到登录界面
		request.getRequestDispatcher("/WIN-INF/index.jsp").forward(request, response);
		return false;
	}

}

最后配置文件springmvc-config.xml在scr目录下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:context="http://www.springframework.org/schema/context"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
  http://www.springframework.org/schema/mvc
  http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
  http://www.springframework.org/schema/context 
  http://www.springframework.org/schema/context/spring-context-4.3.xsd">
	<!-- 定义组件扫描器,指定需要扫描的包 -->
	<context:component-scan base-package="controller" />	
	<!-- 定义视图解析器 -->
	<bean id="viewResolver" class=
    "org.springframework.web.servlet.view.InternalResourceViewResolver">
	     <!-- 设置前缀 -->
	     <property name="prefix" value="/WEB-INF/" />
	     <!-- 设置后缀 -->
	     <property name="suffix" value=".jsp" />
	</bean>
    <!-- 配置拦截器 -->
	<mvc:interceptors>
	   <!--使用bean直接定义在<mvc:interceptors>下面的拦截器将拦截所有请求-->
	
	   <!-- 拦截器1 -->
		<!-- 拦截器1 -->
		<mvc:interceptor>
   			<!-- 配置拦截器作用的路径 -->
    		
		<mvc:interceptor>
		<mvc:mapping path="/**" />
    		<!-- 定义在<mvc:interceptor>下面的表示匹配指定路径的请求才进行拦截的 -->
    		<bean class="interceptor".logininterceptor" />
		</mvc:interceptor>
		
	</mvc:interceptors>
</beans>  

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值