Servlet的注册页面与登录页面

一:创建Servlet文件夹

new--->Servlet

Servlet的注册页面与登录页面

然后填写Servlet文件名

Servlet的注册页面与登录页面

二:编写登录的代码

package org.sunrunda;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
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 org.sunrunda.util.DBUtil;

public class LoginServlet extends HttpServlet {
//登录
//请求
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
          doPost(request, response);
    }

//响应
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //1请求的代码
        request.setCharacterEncoding("utf-8");
        //响应
        response.setCharacterEncoding("utf-8");

        //设置响应的显示格式内容
        response.setContentType("text/html");
        //2处理请求
        String name=request.getParameter("name");
        String pwd= request.getParameter("pwd");
        boolean isTrue = false;
        //jdbc部分
                Connection conn =DBUtil.getConn();
                String sql="select*from student where name=? and pwd=?";
                PreparedStatement ps = null;
                ResultSet rs=null;
                try {
                    ps=conn.prepareStatement(sql);
                    ps.setString(1, name);
                    ps.setString(2, pwd);
                    
                    rs =ps.executeQuery();
                    if(rs.next()){
                        //登录成功
                        isTrue = true;
                    }else{
                        //登录失败
                        isTrue = false;
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                DBUtil.Close(ps, rs, conn);
        //处理响应
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
        out.println("<HTML>");
        out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println("  <BODY>");
        if(isTrue){
            out.println("<h1 style='color:green'>登录成功!</h1>");
        }else{
            out.println("<h1 style='color:red'>登录失败!</h1>");
        }
        out.println("  </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }

}

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    登录页面
    -->
  </head>
  
  <body>
    <form action="loginServlet"  method="post">
  用户名:  <input type="test" name="name"/><br/>
   密码:<input type="test"name="pwd" /> <br /> 
        <input type="submit" value="登录" />
    <a href="reg.jsp">没有账户点击注册</a>
    </form>
  </body>
</html>

Servlet的注册页面与登录页面

 

三:编写注册页面的代码

package org.sunrunda;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

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

import org.sunrunda.util.DBUtil;

public class RegServlet extends HttpServlet {
//注册
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 1请求的代码
        request.setCharacterEncoding("utf-8");
        // 响应
        response.setCharacterEncoding("utf-8");

        // 设置响应的显示格式内容
        response.setContentType("text/html");
        // 2处理请求
        String name = request.getParameter("name");
        String pwd = request.getParameter("pwd");
        String suername = request.getParameter("suername");
        String sex = request.getParameter("sex");
        String ageSet = request.getParameter("age");
        Integer age = Integer.parseInt(ageSet);
        boolean isTrue = false;
        // jdbc部分
        Connection conn = DBUtil.getConn();
        String sql = "insert into student (name,pwd,suername,sex,age) values(?,?,?,?,?)";
        PreparedStatement ps = null;
        try {
            ps = conn.prepareStatement(sql);
            ps.setString(1, name);
            ps.setString(2, pwd);
            ps.setString(3, suername);
            ps.setString(4, sex);
            ps.setInt(5, age);

            int count = ps.executeUpdate();
            if (count > 0) {
                // 注册成功
                isTrue = true;
            } else {
                // 注册失败
                isTrue = false;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        DBUtil.Close(ps, null, conn);
        // 处理响应
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
        out.println("<HTML>");
        out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println("  <BODY>");
        if (isTrue) {
            out.println("<h1 style='color:green'>注册成功!</h1>");
        } else {
            out.println("<h1 style='color:red'>注册失败!</h1>");
        }
        out.println("  </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }

}

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    注册页面
    -->
  </head>
  
  <body>
    <form action="regServlet"  method="post">
  用户名:  <input type="test" name="username"/><br/>
   密码:<input type="password"name="pwd" /> <br /> 
   姓名:  <input type="test" name="name"/><br/>
   年龄:  <input type="test" name="age"/><br/>
        <input type="submit" value="注册" />
        <a href="index.jsp">已有账户,请点击登录</a>
    
    </form>
  </body>
</html>

Servlet的注册页面与登录页面

四:与数据库相连接DBUtil

package org.sunrunda.util;

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

public class DBUtil {
    static {
        // 1
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static Connection getConn() {
        Connection conn = null;
        // 2
        try {
            conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;database=MyDB", "sa", "1");
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return conn;
    }

    public static void Close(PreparedStatement ps, ResultSet rs, Connection conn) {
        try {
            if (conn != null)
                conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            if (ps != null)
                ps.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            if (rs != null)
                rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}