通过Servlet验证登录信息并录入登录信息

该博客介绍了如何使用Servlet进行登录信息验证和录入。基于上篇内容的JDBC数据库操作,博主创建了LongServlet和ZhuCeServlet,并在web.xml中进行了配置。同时,还提到了在JSP文件中设计首页表格,完成了Servlet验证登录信息的基本流程。

Servlet的基本信息可以去看(http://blog.youkuaiyun.com/csdmo/article/details/74357723)中的相关内容

在上篇内容中编写了JDBC关联数据库并操纵数据库的内容,本篇则在上篇的基础上了解通过Servlet验证登录信息并录入登录信息的操作


首先创建两个Servlet——LongServlet与ZhuCeServlet

package com.yy.servlet.web.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.yy.servlet.dao.UserDao;
import com.yy.servlet.po.User;

public class LongServlet extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);//获取的doGet跳转到doPost方法中运行,因为doPost方法更安全
	}
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html");
		String username = request.getParameter("username");//获取页面的username
		String password = request.getParameter("password");//获取页面的password
		response.setCharacterEncoding("utf-8");//配置编码器
		PrintWriter out = response.getWriter();//配置打印设施
		out.print("username"+username);//在网页打印username

		out.print("<br/>");
		out.print("password"+password);//在网页打印password
		UserDao userdao =UserDao.getInstance();//实例化UserDao类并获取getInstance()方法
		Map<String, String> map = new HashMap<String, String>();//准备好存放数据的Map
		map.put("username",username);//获取查询到的username
		map.put("password",password);//获取查询到的password
		User user =userdao.getMap(map);//把map存储的数据付给User
		
		if(user!=null){//如果user不为空表示数据库中有对应数据则登录成功
			out.print("登录成功");
		}else{//user为空打印注册页面
			out.print("登录失败,请注册");
			out.print(" <form method='get' action='ZhuCeServlet'><br>");//点击注册跳转到ZhuCeServlet中去

			out.print("	用户名:<input type='text' name='username'/><br>");
			out.print("密码:<input type='password' name='password'><br>");
			out.print("<input type='submit' value='注册'>");
			out.print("</form>");
			
		    
		}
		out.flush();//刷新页面
		out.close();//关闭
	}
}

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.yy.servlet.dao.UserDao;
import com.yy.servlet.po.User;

public class ZhuCeServlet extends HttpServlet{

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html");
		response.setCharacterEncoding("UTF-8");
		String username = request.getParameter("username");
		String password= request.getParameter("password");
		
		PrintWriter out =response.getWriter();
		
		
		User user = UserDao.getInstance().getUserByusername(username);//查询数据库内容
		
		if(user!=null){//如果user不为空表示数据库有相应信息注册失败,在页面打印注册表
			out.print("用户名已存在,请重新输入<br>");
			out.print(" <form method='get' action='ZhuCeServlet'><br>");
			out.print("	用户名:<input type='text' name='username'/><br>");
			out.print("密码:<input type='password' name='password'><br>");
			out.print("<input type='submit' value='注册'>");
			out.print("</form>");
		}else{
			User user2 = new User();
			user2.setUsername(username);
			user2.setPassword(password);//把注册信息传输到User中
			boolean flag =UserDao.getInstance().saveUser2(user2);//通过JDBC添加注册内容
			if(flag){
				out.print("注册成功");
			}else{
				out.print("注册失败");//注册失败,很有可能数据库出错
			}
		}
	}


然后通过WebRoot中WEB-INF下的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">
	
		<!-- 配置LongServlet -->
		<servlet>
			<servlet-name>LongServlet</servlet-name>
			<servlet-class>com.yy.servlet.web.servlet.LongServlet</servlet-class>
		</servlet>
		<servlet-mapping>
			<servlet-name>LongServlet</servlet-name>
			<url-pattern>/LongServlet</url-pattern>
		</servlet-mapping>
		<!-- 配置LongServlet -->
		<servlet>
			<servlet-name>ZhuCeServlet</servlet-name>
			<servlet-class>com.yy.servlet.web.servlet.ZhuCeServlet</servlet-class>
		</servlet>

		<servlet-mapping>
			<servlet-name>ZhuCeServlet</servlet-name>
			<url-pattern>/ZhuCeServlet</url-pattern>
		</servlet-mapping>

  <welcome-file-list>
    <welcome-file>MyJsp.jsp</welcome-file>//首页的JSP
  </welcome-file-list>
  
</web-app>



别忘了在JSP文件中编写首页表格


<h1>通过Servlet验证登录信息并录入登录信息</h1>
    <form method="get" action="LongServlet">//action表示关联到LongServlet类
    	用户名:<input type="text" name="username"/><br>
    	密码:<input type="password" name="password"><br>
    	<input type="submit" value="登录">
    </form>
  </body>


通过Servlet验证登录信息并录入登录信息的相关内容告一段落,但是Servlet的学习并没有结束



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值