符合MVC模式的javaWEB学生信息管理系统(1)

一.查阅资料(实现功能1:MVC模式)

经过查阅资料后,理解MVC为
M:Model模型层-------JavaBean
V:View视图层----------JSP
C:Controller控制层–Servlet
之后有了一个大致的思路,即通过jsp页面进行前端交互,javaBean存储数据,servlet进行后端操作,即为符合javaWeb规范的MVC模式

首先,使用到的一些技术共有:

  • jsp
  • servlet
  • 一些html css jquery 以及 jstl,少量json
    -在这里插入图片描述
  • 整体分为三个部分,

二.登陆页面 实现功能(4:页面验证码刷新 3.cookie实现记录帐号密码 {普通保存数据入mysql数据库(略)})

在这里插入图片描述
登陆

1. 在登陆注册时,勾选记住密码选项后,记录勾选状态,将表单中的信息在提交时在loginServlet中,保存在cookie中,在下次登陆时,先检验cookie信息是否为空,不为空则填入表单

(1).cookie保存,记住密码

在提交表单,验证成功时,在loginServlet中保存保存cookie,设置时间,添加cookie
                         if(remember!=null)
	                    {   
	                    	Cookie cookie1=new Cookie("remember","true");
	                    	cookie1.setMaxAge(60*60);
	                    	response.addCookie(cookie1);

	                    	Cookie cookie2=new Cookie("Username",Username);
	                    	cookie2.setMaxAge(60*60);
	                    	response.addCookie(cookie2);
	                    	

	                    	Cookie cookie3=new Cookie("Password",passWord);
	                    	cookie3.setMaxAge(60*60);
	                    	response.addCookie(cookie3);
	                    }
	                    else 
	                    {
						    Cookie[] cookies=request.getCookies();
						    if(cookies!=null)
						    for (Cookie cookie : cookies) 
						    {
								cookie.setMaxAge(0); response.addCookie(cookie);
							}
						    Cookie cookie1=new Cookie("remember","false");
						    response.addCookie(cookie1);
						}

(2).在勾选情况下,jquery实现读取cookie信息,放入表单页面中显示

需要导入scripts/jquery-1.7.2.min.js
//cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js包

   $(function() 
    {
		if($.cookie("remember")=="true")
	  {
		 $("input[name='remember']").attr("checked",true);
		 $("input[name='Username']").val($.cookie("Username"));
		 $("input[name='Password']").val($.cookie("Password"));
	  }
	});

2.页面验证码
(1).验证码的生成 在servlet中.先在内存中用画笔graphic画出随机验证码的同时,通过response获取输出流,用ImageIO打印图片,再将验证码保存在session中,在表单提交验证码时与seesion进行比对

@WebServlet("/CheckCodeServlet")
public class CheckCodeServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    private Random random=new Random();
    public CheckCodeServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("hello world");
		//内存绘制图片对象,采用RGB模式
		BufferedImage image=new BufferedImage(130,20,BufferedImage.TYPE_INT_RGB);
		//获取画笔
		Graphics graphics=image.getGraphics();
		//画前设置颜色
		graphics.setColor(Color.white);
		graphics.fillRect(0,0,130,30);
		//矩形框大小
		//绘制干扰斑点,即画实心圆
		for(int i=0;i<28;i++)
		{
			//颜色随机
			Font font=new Font("宋体",Font.BOLD,27);  
			graphics.setFont(font);
			graphics.setColor(new Color(30,144,255));
			int x1=random.nextInt(130);
			int y1=random.nextInt(30);
			int x2=random.nextInt(130);
			int y2=random.nextInt(30);
			graphics.fillOval(x1, y2,4,4);
		}
		//拼接生成验证码
		StringBuilder builder=new StringBuilder();
		for(int i=0;i<5;i++)
		{
			//设置字符颜色
			builder.append((char)((int)'A'+random.nextInt(25)));
		}
		request.getSession().setAttribute("checkCode",builder.toString());
		graphics.setColor(new Color(249,236,228));
		for(int i=0;i<5;i++)
		{
			char item=builder.toString().charAt(i);
			graphics.drawString(item+"",7+(i*25),18);
		}
		ImageIO.write(image,"png",response.getOutputStream());
	}
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

(2).验证码的点击更新和获取图片到页面

在登陆页面上设置img标签,设置属性src为checkCodeServlet

<img id="checkCoding" src="CheckCodeServlet" onclick="checkCode(this)"/>

js增加onclick监听事件,改变src,这样就会img标签重新获取调取checkCodeServlet达到刷新图片验证码的目的
在这里插入图片描述

		<script type="text/javascript">
		function checkCode(obj) 
		{
		  /*通过刷新img标签的路径,使其重新请求servlet*/
		  obj.src="CheckCodeServlet?"+new Date().getTime();
		  alert(obj.src);
		}
		</script>

三.登陆成功,比对数据库中信息(略),转发至Inf.jsp信息管理界面

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值