Java web 实现简单登录功能-----快速入门Java web
第一步:编写Servlet(收发参数)
package com.zhuoyue.action;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zhuoyue.dao.LoginDao;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import java.io.IOException;
public class DoLoginAction extends HttpServlet {
protected void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException, IOException{
this.doPost(req, resp);
}
protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException{
//设置编码方式
request.setCharacterEncoding("utf-8");
//但凡要客户端的东西都问request要
//要用户名 username 和 密码 userpass
//String value=request.getParameter("控件名");
String username=request.getParameter("username");
String userpass=request.getParameter("userpass");
//但凡给客户端东西都是response给
//response没有 办法直接给,通过PrintWriter输出
PrintWriter out=response.getWriter();//自己new的,不具备向客户端写出的能力
//DB= table = users
//是否存在表里
LoginDao dao = new LoginDao();
if(dao.checkLogin(username, userpass)){
out.println("congradulation!!!! success!!!");
}else{
out.println("I am so sorry ,your username or userpass is noavaiable....");
}
}
}
第二步:编写Dao层代码
(这里我跳过了Service,个人感觉简单登录功能不需要做的太复杂)
package com.zhuoyue.dao;
import com.zhuoyue.util.DBUtil;
import java.sql.*;
public class LoginDao {
public boolean checkLogin(String username, String password){
boolean flag = false;
Connection conn = null;
Statement st = null;
ResultSet rs = null;
/*
创建Connnection, Statement, ResultSet对象
调用验证登录的方法
*/
System.out.println("name"+username+"password"+password);
String sql ="select * from user where username = '"+ username +"'";
conn = DBUtil.getConnection();
try {
st = conn.createStatement();
rs = st.executeQuery(sql);
while (rs.next()){
if(rs.getString("password").equals(password)){
flag = true;
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, st, conn);
}
return flag;
}
}
第三步:编写dao层需要的工具类DBUtil
package com.zhuoyue.util;
import java.sql.*;
public class DBUtil {
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/student";
private static String user = "root";
private static String pwd = "123456";
//加载驱动
static{
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//连接对象
public static Connection getConnection(){
Connection conn = null;
try {
conn = DriverManager.getConnection(url, user, pwd);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
//关闭流
public static void close(ResultSet rs, Statement st, Connection conn){
try {
if(rs != null){
rs.close();
}
if(st != null){
st.close();
}
if(conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(PreparedStatement pst, Connection conn){
close(null, pst, conn);
}
}
服务器最后进行xml项目配置
将写好的Servlet配入xml中,也可以通过使用注解的方式完成。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<!-- 一个servlet的配置需要配置两个东西 -->
<servlet>
<servlet-name>login</servlet-name><!-- 111 -->
<!-- 在底层使用到 了reflect 反射 ... 所以,必须是包名加类名的全程 -->
<servlet-class>com.zhuoyue.action.DoLoginAction</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name><!-- 此处与111处一致 -->
<url-pattern>/dologin</url-pattern><!-- 此处与前端form标点一致 -->
</servlet-mapping>
</web-app>
前端界面编写
<%@ 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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Login Page</h1>
<form action="dologin" method="post">
账号:<input name="username" /><br />
密码:<input type="password" name="userpass" /><br />
<input type="submit" value="登录" />
<input type="reset" value="重写" />
</form>
</body>
</html>