Jsp+Servlet+JDBC 登录


1.index.jsp

<%@ 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 用来提取用户填入并提交的信息--> 
	 <form method = "post" name = "frmLogin" action = "LoginServlet"> 
	   <h1 align = "center"> 用户登录</h1> <br> 
	   <div align = "center"> 用户名:
	      <input type = "text" name = "txtUserName" value = "Your name" 
	       size = "20" maxlength = "20" 
	       onfocus = "if(this.value=='Your name')this.value='';"> <br> 密码:
	      <input type = "password" name = "txtPassword" value = "Your password" 
	       size = "20" maxlength = "20" 
	       onfocus = "if(this.value=='Your password')this.value='';"> <br> 
	      <input type = "submit" name = "Submit" value= "提交" onClick = "validateLogin();" > 
	             
	      <input type = "reset" name = "Reset" value = "重置"> <br> 
	   </div> 
	 </form> 
	 
	 
	<!-- javaScript 函数 validateLogin(),用来验证用户名和密码是否为空 --> 
    <script language = "javaScript"> 
     function validateLogin( ) 
     { 
      var sUserName = document. frmLogin. txtUserName. value ; 
      var sPassword = document. frmLogin. txtPassword. value ; 
      if( sUserName== "" ) 
      { 
       alert( "请输入用户名!" ) ; 
       return false; 
      } 
      if( sPassword== "" ) 
      { 
       alert( "请输入密码!" ) ; 
       return false; 
      } 
     } 
    </script> 
  </body>
</html>



2.LoginServlet.java

package com.rt.login;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

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

public class LoginServlet extends HttpServlet {

	/**
	 * Constructor of the object.
	 */
	public LoginServlet() {
		super();
	}

	/**
	 * Destruction of the servlet. <br>
	 */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	/**
	 * The doGet method of the servlet. <br>
	 *
	 * This method is called when a form has its tag value method equals to get.
	 * 
	 * @param request the request send by the client to the server
	 * @param response the response send by the server to the client
	 * @throws ServletException if an error occurred
	 * @throws IOException if an error occurred
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html");
		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>");
		out.print("    This is ");
		out.print(this.getClass());
		out.println(", using the GET method");
		out.println("  </BODY>");
		out.println("</HTML>");
		out.flush();
		out.close();
	}

	/**
	 * The doPost method of the servlet. <br>
	 *
	 * This method is called when a form has its tag value method equals to post.
	 * 
	 * @param request the request send by the client to the server
	 * @param response the response send by the server to the client
	 * @throws ServletException if an error occurred
	 * @throws IOException if an error occurred
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
	
		response.setContentType( "text/html" ); 
		String result = ""; 
		   
		// 获取用户名
		String sUserName = request.getParameter( "txtUserName" ); 
		if ( sUserName == "" || sUserName == null || sUserName.length() > 20 ) 
		{ 
		   try 
		   { 
			    result = "请输入用户名(不超过20 字符)!" ; 
			    request.setAttribute( "ErrorUserName" , result ) ; 
			    response.sendRedirect( "login.html" ) ; 
		   } catch ( Exception e ) { 
			   	e.printStackTrace();
		   } 
		} 
		   
		// 获取密码
		String sPasswd = request.getParameter ( "txtPassword" ) ; 
		if ( sPasswd == "" || sPasswd == null || sPasswd. length ( ) > 20 ) 
		{ 
			 try 
			 { 
				 result = "请输入密码(不超过20字 符)!" ; 
				 request.setAttribute ( "ErrorPassword" , result ) ; 
				 response.sendRedirect ( "login.html" ) ; 
			 } catch ( Exception e ) 
			 {
				 e.printStackTrace();  
			 } 
		  } 
		   
		// 登记JDBC驱动程序
		try 
		{ 
		   Class.forName ( "com.mysql.jdbc.Driver" ).newInstance( ) ; 
		} catch ( InstantiationException e ) { 
		   e.printStackTrace(); 
		   System.out.println( "InstantiationException" ) ; 
		} catch ( IllegalAccessException e ) { 
		   e.printStackTrace(); 
		   System.out.println( "IllegalAccessException" ) ; 
		} catch ( ClassNotFoundException e ) { 
		   e.printStackTrace(); 
		   System.out.println( "ClassNotFoundException" ) ; 
		} 
		   
		// 连接参数与Access不同
		String url = "jdbc:mysql://localhost/myoa_dec31" ; 
		   
		// 建立连接
		java.sql.Connection connection = null ; 
		Statement stmt = null ; 
		ResultSet rs = null ; 
		try 
		{ 
		   connection = DriverManager.getConnection( url , "root" , "890307" ) ; 
		   stmt = connection.createStatement () ; 
		    
		   // SQL语句
		   String sql = "select * from loginuser where username='" + sUserName
		     + "' and userpwd = '" + sPasswd + "'" ; 
		   rs = stmt.executeQuery ( sql ) ; // 返回查询结果

		 } catch ( SQLException e ) { 
		   e.printStackTrace () ; 
		 } 
		  	try 
		  	{ 
		  		if ( rs. next () ) // 如果记录集非空,表明有匹配的用户名和密码,登陆成功
		  		{ 
				    // 登录成功后将sUserName设置为session变量的UserName
				    // 这样在后面就可以通过 session.getAttribute("UserName") 来获取用户名,
				    // 同时这样还可以作为用户登录与否的判断依据
				    request.getSession().setAttribute( "UserName" , sUserName ) ; 
				    response.sendRedirect( "success.jsp" ) ; 
		  		} 
		  		else 
		  		{ 
		  			// 否则登录失败
		  			//response.sendRedirect ( "index.jsp" );
		  			response.sendRedirect( "login_failure.jsp" ) ; 
		  		} 
		  } catch ( SQLException e ) { 
			  e.printStackTrace (); 
		  } 
		  
		  	
		  try 
		  { 
			   if ( null!=rs ) 
			   { 
				   rs.close() ; 
			   } 
			   if ( null!=stmt ) 
			   { 
				   stmt.close() ; 
			   } 
			   if ( null!=connection ) 
			   { 
				   connection.close() ; 
			   } 
		  } catch ( SQLException e ) { 
			  e. printStackTrace() ; 
		  } 
	}

	/**
	 * Initialization of the servlet. <br>
	 *
	 * @throws ServletException if an error occurs
	 */
	public void init() throws ServletException {
		// Put your code here
	}

}



3.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
	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_3_0.xsd">
  <display-name></display-name>
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>LoginServlet</display-name>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>com.rt.login.LoginServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/LoginServlet</url-pattern>
  </servlet-mapping>
  	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值