基于SSM框架简单的登录注册模块

基于SSM框架简单的登录注册模块

登录功能主要代码

Dao层

UserDao.java(接口)
//登录
public User findUser(@Param("id")String id,
			@Param("password")String password);
UserDao.xml
<!-- 登录 -->
	<select id="findUser" parameterType="map" resultType="User">
		select * from t_user where id=#{id} and password=#{password}
	</select>

Server层

Server接口
//登录
 	public User login(String id,String password); 
Service实现层

注意:ServerImpl上方需要注解@Service,ServiceImpl用来实现Service接口

@Autowired  //依赖注入UserDao
	private UserDao userDao;
//登录
	@Override
	public User login(String id, String password) {
		// TODO Auto-generated method stub
		User user= userDao.findUser(id, password);
		return user;
	}

Controller控制器层

@RequestMapping("/login.action")
	public void login(String id,String password,HttpSession session,HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html; charset=UTF-8");
		try {
			User user= userService.login(id, password);
			if(user.getId()==""||user.getId()==null) {
				response.getWriter().print("<script> alert('输入的账号密码有误,找不到此用户!!!');location.href='index.action' </script>");
			}
			session.setAttribute("id", user.getId());
			session.setAttribute("User",user);
			request.getRequestDispatcher("index.jsp").forward(request, response);
		} catch (Exception e) {
			response.getWriter().print("<script> alert('输入的账号密码有误,找不到此用户!!!');location.href='index.action' </script>");
			e.printStackTrace();
		}
	}

前端代码

<form action="${pageContext.request.contextPath}/login.action" onSubmit="return myfunction()">
		<div class="border-radius"></div>
		<table>
			<tr>
				<td><font style="color: #000">账号:</font><input type="text" id="id" name="id" value=""></td>
			</tr>
			<tr>
				<td><font style="color: #000">密码:</font><input type="password" id="password" name="password"  value=""></td>
			</tr>
			<tr>
				<td><input type="submit" name="submit"  class="btn" value="登录"  /></td>
			</tr>
			</table>
	</form>
		<script type="text/javascript">
	function myfunction(){
		var id=document.getElementById("id").value;
		var pass=document.getElementById("password").value;
		if(id==''||id==null){
			alert("用户名不能为空");
			return false;
		}
		var pstespd=/^\d{8,11}$/;
		if (!pstespd.exec(id)){
			 confirm("账号格式错误,只能输入8-11个数字做为账号。 ");
			 return false;
		 }
		if(pass==''||pass==null){
			alert("密码不能为空");
			return false;
		}
	}
	</script>

注册功能主要代码

Dao层

UserDao.java(接口)
//注册
	public void addUser(User user);
UserDao.xml
<!-- 注册 -->
	<insert id="addUser" parameterType="User">
		insert into t_user(id,name,personalized,sex,password,emil)values(#{id},#{name},#{personalized},#{sex},#{password},#{emil})
	</insert>

Service层

Service.java(接口)
//注册
	public void regist(User user);
ServiceImpl(实现Service接口)
//注册
	@Override
	public void regist(User user) {
		// TODO Auto-generated method stub
		userDao.addUser(user);
		
	}

Controller控制器

//注册
	@RequestMapping("/regist.action")
	public void regist(User user,HttpServletRequest request,HttpServletResponse response,HttpSession session) throws IOException, ServletException {
	try{
		userService.regist(user);
		request.getRequestDispatcher("lo.action").forward(request, response);//跳转登录页
		}catch(Exception m){
		m.printStackTrace();
		response.getWriter().print("<script> alert('输入的邮箱有误,找不到此邮箱!!!');location.href='re.action' </script>");//跳转注册页
}
}

前端代码

<form action="${pageContext.request.contextPath}/regist.action" onSubmit="return chek()">
	<table>
		<tr>
			<td><font style="color: #000">账号:<font color="red">*</font></font></font><input class="input" type="text" id="id" name="id" value=""></td>
		</tr>
		<tr>
			<td>
			<font style="color: #000">密码:<font color="red">*</font></font>
			<input class="input" type="password" id="password" name="password" value=""></td>
			<td>
				<font style="color: #000">确认密码:<font color="red">*</font></font>
				<input class="input" type="password" id="password1" name="password1" value="">
			</td>
		</tr>
		<tr>
			<td><input class="btn" type="submit" value="注册"></td>
		</tr>
	</table>
	<script type="text/javascript">
	function chek(){
		var id=document.getElementById("id").value;
		var password=document.getElementById("password").value;
		var password1=document.getElementById("password1").value;
		if(id==""||id==null){
			confirm("账号不能为空");
			return false;
		}
		var pstespd=/^\d{8,11}$/;
		if (!pstespd.exec(id)){
			 confirm("账号格式错误,只能输入8-11个数字做为账号。 ");
			 return false;
		 }
		 if(password==""||password==null){
			confirm("密码不能为空");
			return false;
		}
		if(password1==""||password1==null){
			confirm("请输入确认密码!!!");
			return false;
		}
		if(password!=password1){
			confirm("两次输入的密码不一致,请重新输入!!!");
			return false;
		}
		 var patrn=/^(\w){8,20}$/;
		 if (!patrn.exec(password)){
			 confirm("密码格式错误,只能输入8-20个字母、数字、下划线  ");
			 return false;
		 }else{
			 return true;
		 }

登录拦截器

拦截器需要在springmvc-config.xml文件中配置拦截器,具体如下所示:

<mvc:interceptor>
		<!-- 配置拦截器作用路径 -->
		<mvc:mapping path="/**" />
		<!-- 配置不需要拦截器作用的路径 -->
		<mvc:exclude-mapping path=" " />
		<bean class="com.***.interceptor.LoginInterceptor" />
		
</mvc:interceptor>

LoginInterceptor.java(需要实现HandlerInterceptor接口,并重写其中的方法)例如:

package com.Onforum.interceptor;

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 com.Onforum.po.Root;

public class LoginInterceptor implements HandlerInterceptor {
//视图渲染结束后执行
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception modelAndView)
			throws Exception {
		// TODO Auto-generated method stub

	}
//控制器之后,且视图解析之前执行
	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
			throws Exception {
		// TODO Auto-generated method stub

	}
//控制器方法前执行
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		// TODO Auto-generated method stub
		System.out.println("拦截OK!!!");
		HttpSession session = request.getSession();
		User user= (User)session.getAttribute("id");//获取session中的id的值。
		if(user!= null) {
			return true;
		}
		request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);
		return false;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值