EDUCODER头哥 基于MVC模式的用户登录

极速版

  1. 编写用户登录页面
html 复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
 
<form action="login">
    username:<input type="text" name="userName" >
    password:<input type="password" name="password" >
    <input type="submit" value="提交">
</form>
    
</body>
</html>
  1. 编写用户信息
java 复制代码
package chapter9;

public class StudentBean {
    private String userName;
    private String password;
    public String getUserName(){
        return userName;
    }
    public String getPassword(){
        return password;
    }
    public void setUserName(String userName){
        this.userName = userName;
    }
    public void setPassword(String password){
        this.password = password;
    }
}
  1. 配置控制器
XML 复制代码
<?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_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>chapter9</display-name>
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>chapter9.LoginServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>
  
  
</web-app>
  1. 登录验证
java 复制代码
package chapter9;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

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

public class LoginServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}

	@Override
	public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
			/********* Begin *********/
		Connection conn ;
        PreparedStatement st;
        ResultSet rs=null;
        String userName = req.getParameter("userName");
        String password = req.getParameter("password");
        try{
            Class.forName("com.mysql.jdbc.Driver");
            String url="jdbc:mysql://127.0.0.1:3306/university?user=root&password=123123";
            conn=DriverManager.getConnection(url);
            String sql = "select * from student" + " where USER_NAME = ? and PASSWORD = ?";
//预编译
            st= conn.prepareStatement(sql);
            st.setString(1,userName);
            st.setString(2,password);
            rs = st.executeQuery();
        }catch (Exception e){
            e.printStackTrace();
        }
 
        StudentBean studentbean=new StudentBean();
        studentbean.setUserName(userName);
        studentbean.setPassword(password);
        HttpSession session = req.getSession();
        try {
            if (rs.next()){
                studentbean.setUserName(rs.getString(2));
                studentbean.setPassword(rs.getString(3));
                session.setAttribute("account",studentbean);
                resp.sendRedirect("success.jsp");
            }else{
                studentbean.setUserName(userName);
                studentbean.setPassword(password);
                session.setAttribute("account",studentbean);
                resp.sendRedirect("fail.jsp");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
			/********* End *********/
		
		
	}
}

以下题目:

  1. 编写用户登录页面

任务描述

本次实训我们要实现一个MVC的登陆功能:

本关我们要实现的是登陆功能的第一步:编写登陆表单,在jsp中编写表单,设置用户名字段userName和用户密码字段password,并设置请求的servlet路径为login。

编程要求

根据提示,在右侧编辑器编写代码,在jsp中完成登录页面的编辑。

效果图如下(无需给表单添加样式):

测试说明

平台会检验你JSP文件最终生成的HTML代码,如果HTML代码相匹配则通关成功,否则通关失败。

开始你的任务吧,祝你成功!


  1. 编写用户信息

任务描述

本次实训我们要实现一个MVC的登陆功能:

本关我们要实现的是:编写代表学生的JavaBean类文件StudentBean,在StudentBean中需包含userName(用户名)、password(用户密码 )等字段,并实现了其set和get方法。

编程要求

根据提示,在右侧编辑器编写代码,按照任务描述设计StudentBean类。

各成员变量属性设置如下:

| 字段名 | 类型 | 中文名称 |

| ------------ | ------------ |

| userName | String | 用户名 |

| password | String | 用户密码 |

测试说明

平台会检验你java文件是否按规定编写了相关内容,编写成功则通关成功,否则通关失败。

开始你的任务吧,祝你成功!


  1. 配置控制器

任务描述

本次实训我们要实现一个MVC的登陆功能:

本关我们要实现的是在web.xml中配置控制器

编程要求

根据提示,在右侧xml编辑器编写内容,设置servlet控制器,

指定servlet的类名称为chapter9.LoginServlet,并设置拦截路径为/login。

测试说明

平台会检验你web.xml里的控制器是否配置成功,如果成功则通关成功,否则通关失败。

开始你的任务吧,祝你成功!


  1. 登录验证

本关任务

借助JDBC在库名university中完成对数据表student数据的查询,来验证前台传过来的用户名称字段userName和密码字段password是否匹配;127.0.0.1:3306是mysql服务器地址及端口 数据库编码格式设置为utf-8,MySQL的用户名为root,密码为123123,我们需要根据这些属性来连接数据库。

student表数据如图:

javabean结构如图:

编程要求

根据提示,在右侧编辑器编写代码,在doGet方法中完成参数验证,并把用户信息封装到StudentBean类,存进session属性里(属性名设置为account),

如果验证通过,则跳转到success.jsp,如果失败则跳转到fail.jsp(两个JSP文件均已创建我们只需要跳转页面即可)。

success.jsp代码:

fail.jsp代码:

测试说明

测试输入:张五 123456;

预期输出:

测试输入:张三 123456;

预期输出:

开始你的任务吧,祝你成功!

相关推荐
虾米Life1 天前
MVC与MVVM 架构
架构·mvc·mvvm
笛卡尔的心跳3 天前
Spring MVC 注解
java·spring·mvc
小松加哲3 天前
Spring MVC 核心原理全解析
java·spring·mvc
那个失眠的夜4 天前
RESTful 语法规范 核心注解详解
java·spring·mvc·mybatis
羌俊恩4 天前
Centos环境django项目部署过程
django·flask·centos·mvc·mtv·web项目框架
Foreer黑爷6 天前
Spring MVC原理与源码:从请求到响应的全流程解析
java·spring·mvc
曹牧7 天前
Spring MVC中使用HttpServletRequest和HttpServletResponse
java·spring·mvc
曹牧7 天前
Spring MVC配置文件
java·spring·mvc
CPUOS20107 天前
嵌入式C语言高级编程之MVC设计模式
c语言·设计模式·mvc
xxjj998a8 天前
【Spring】Spring MVC案例
java·spring·mvc