方式一:
jsp:
<font color="red">${ msg }</font>
<form action="/personal/requestLogin" method="post">
姓名:<input type="text" name="username"/><br/>
密码:<input type="password" name="password"/><br/>
<input type="submit" value="登录"/>
</form>

web.xml

<servlet>
<servlet-name>requestLogin</servlet-name>
<servlet-class>com.pers.request.service.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>requestLogin</servlet-name>
<url-pattern>/requestLogin</url-pattern>
</servlet-mapping>

LoginServlet.java
public class LoginServlet extends HttpServlet {
// 登录校验代码
}

方式二:注解 (前提是@WebServlet("/LoginServlet")必须和类名LoginServlet一致)
jsp:
<font color="red">${ msg }</font>
<form action="/personal/LoginServlet" method="post">
姓名:<input type="text" name="username"/><br/>
密码:<input type="password" name="password"/><br/>
<input type="submit" value="登录"/>
</form>
LoginServlet.java
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
// 登录校验代码
}

以下是详细代码:

==================================================傲娇的分割线==================================================

login.jsp

<%@ 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>登录测试</title>
</head>
<body>
<h3>登录页面</h3>
<form action="/personal/requestLogin" method="post">
姓名:<input type="text" name="username"/><br/>
密码:<input type="password" name="password"/><br/>
<input type="submit" value="登录"/>
</form>
</body>
</html>

web.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_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>personal</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>requestLogin</servlet-name>
<servlet-class>com.pers.request.service.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>requestLogin</servlet-name>
<url-pattern>/requestLogin</url-pattern>
</servlet-mapping>
</web-app>

LoginServlet.java

package com.pers.request.service;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.pers.request.domain.User; /**
* Servlet implementation class RequestLogin
*
* 登录测试
*/
//@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取从前台表单传过来的值
String username = request.getParameter("username");
String password = request.getParameter("password"); // 从数据库中查询
UserService userService = new UserService();
User user = userService.login(username, password); // 获取项目名称
String projectName = request.getContextPath(); // 判断user是否存在
if (user!=null) {
// 登录成功,跳转到登录成功页面(重定向)
// (重定向的地址的写法:包含项目名称的,包含项目名称的,包含项目名称的,包含项目名称的)
response.sendRedirect(projectName + "/jsp/request/success.jsp");
} else {
// 登录失败,提示信息并跳转到登录页面(转发)
request.setAttribute("msg", "用户名或密码错误,请重新输入!");
request.getRequestDispatcher("/jsp/request/login.jsp").forward(request, response);
} } /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }

UserService.java

package com.pers.request.service;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import com.pers.jdbc.utils.JdbcUtils;
import com.pers.request.domain.User; /**
* @author liangyadong
* @date 2016年10月25日 下午4:16:00
* @version 1.0
*/
public class UserService { /**
* 根据用户名和密码查询
* @param username
* @param password
* @return
*/
public User login(String username, String password){ /**
* 步骤
* 1.加载驱动获取连接
* 2.编写sql
* 3.预编译sql
* 4.设置参数
* 5.执行sql
* 6.遍历结果集,判断用户是否存在
*/
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
// 获取连接
conn = JdbcUtils.getConnection();
// 编写sql
String sql = "select * from t_user where username = ? and password = ?";
try {
// 预编译sql
stmt = conn.prepareStatement(sql);
// 设置参数
stmt.setString(1,username);
stmt.setString(2, password);
// 执行sql
rs = stmt.executeQuery();
// 遍历结果集
while (rs.next()) {
User user = new User();
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
return user;
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JdbcUtils.release(conn, stmt, rs);
} return null;
} }

User.java

package com.pers.request.domain;
/**
* @author liangyadong
* @date 2016年10月25日 下午2:46:03
* @version 1.0
*/
public class User { private String username;
private String password; public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
} @Override
public String toString() {
return "User [username=" + username + ", password=" + password + "]";
} }

JdbcUtils.java

package com.pers.jdbc.utils;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties; /**
* @author liangyadong
* @date 2016年10月13日 下午3:23:22
* @version 1.0
*/
public class JdbcUtils { public static final String DRIVERCLASS;
public static final String URL;
public static final String USERNAME;
public static final String PASSWORD; /**
* 静态代码块
*
* 步骤
* 1.创建properties对象
* 2.获取db配置文件的输入流
* 3.properties对象加载配置文件
* 4.properties对象通过key获取值
*/
static{
// 读取配置文件,将值赋给常量
// 创建properties对象
Properties pro = new Properties(); // 获取db.properties文件的输入流
InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("com/pers/jdbc/utils/db.properties"); // 加载配置文件
try {
pro.load(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // 通过key获取值
DRIVERCLASS = pro.getProperty("driverClass");
URL = pro.getProperty("url");
USERNAME = pro.getProperty("username");
PASSWORD = pro.getProperty("password"); } /**
* 加载驱动
*/
public static void loadDriver(){
try {
Class.forName(DRIVERCLASS);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
* 获取连接
* @return
*/
public static Connection getConnection() {
// TODO Auto-generated method stub
// 加载驱动
loadDriver();
try {
// 获取连接
return DriverManager.getConnection(URL,USERNAME,PASSWORD);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return null;
} /**
* 释放资源
*
* 查询的释放资源方法
* @param conn
* @param sta
* @param rs
*/
public static void release(Connection conn,Statement sta,ResultSet rs){
if (rs!=null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rs = null;
}
if (sta!=null) {
try {
sta.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sta = null;
}
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn = null;
}
} /**
* 释放资源
*
* 增删改的释放资源方法
* @param conn
* @param sta
*/
public static void release(Connection conn,Statement sta){
if (sta!=null) {
try {
sta.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sta = null;
}
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn = null;
}
} }

db.properties

driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql:///myTest
username=root
password=root

Servlet程序访问的流程的更多相关文章

  1. Servlet程序访问jsp文件404的一种情况

    启动Jsp Run on Server的时候出现404的错误,如下图: 检查一下是否文档目录如下图:jsp应该在WebContent下,而不是WEB_INF下,访问放在WEB_INF下的jsp文件就会 ...

  2. Servlet快速入门:第一个Servlet程序

    Servlet是整个JavaWeb开发的核心,同时也是一套规范,即公共接口.用于处理客户端发来的请求并作出响应.通常情况下我们会发送不同的请求并交由不同的处理程序来处理,例如处理用户信息和处理订单信息 ...

  3. 【Java框架型项目从入门到装逼】第四节 - 编写第一个Servlet程序

    在开始这一节之前呢,我们还需要把Tomcat配置到Eclipse中,配置的方式很简单,打开Eclipse,Window,Preferences,进入到这个页面: 将Tomcat的安装目录配置到Ecli ...

  4. Java技术分享:如何编写servlet程序

    身为计算机专业的我,从接触java至今,已经有七年之久,从最开始的小白到现在的大白,这是一个漫长而曲折的历程. 大学刚接触Java这个学科时,一点儿都不理解java是要干嘛的,只知道学起来肯定不容易, ...

  5. Servlet入门总结及第一个Servlet程序

    目录 一了解Servlet的概念 二Servlet技术功能 三 Servlet技术特点 四 Servlet生命周期 五servlet工作过程 六 Servlet与JSP区别 七Servlet代码结构 ...

  6. 【JavaWeb】Servlet 程序

    Servlet 程序 Servlet Servlet 是在 Web 服务器中运行的小型 Java 程序.Servlet 通常通过 HTTP(超文本传输​​协议)接收和响应来自 Web 客户端的请求. ...

  7. [JavaWeb 用MyEclipse分别创建最简单的JSP程序和Servlet程序]

    最近看了子柳的<淘宝技术这十年>,其中讲到因为负载和连接池问题,淘宝当年迫不得已从SUN请来一对工程师从LAMP架构转到Java+Oracle.作为一个PHP为“母语”的程序仔,真是感到压 ...

  8. 动手学servlet(一) 第一个servlet程序

    1.文件>新建>动态WEB项目 "javaeedemo">在Java Resource的src下新建包“servletdemo”,包下新建一个类“MyServet ...

  9. 配置一个servlet程序

    <!-- 配置一个servlet程序 --> <servlet> <!-- servlet的内部名称 ,可以自定义--> <servlet-name>H ...

随机推荐

  1. 在Azure中的Ubuntu中安装Open edX

    最近,由于工作原因,在Azure上的Ubuntu虚拟机中安装了Open edX 实例,安装过程遇到了不少问题, 在从网上找答案的过程中,学习到了不同的知识. 注:若Ubuntu虚拟机Setup在Glo ...

  2. cmd命令进行RSA 密钥加密操作

    --参考 http://msdn.microsoft.com/zh-cn/library/2w117ede http://msdn.microsoft.com/zh-cn/library/yxw286 ...

  3. php 多进程workman服务器框架

    今天搜php socket,发现了一个给力的php写socket的框架workman,有机会要用用. 好给力,原来那个小蝌蚪聊天室就是用这个开发的. 仿佛发现了新大陆.

  4. Eclipse中设置JDK内存方式

    (1) 打开Eclipse,双击Serveers进入到servers编辑画面 (2) 点击 Open launch configuration 选项 (3) 选项中找到Arguments 的选项卡(t ...

  5. 标准IO操作

    前言 本文介绍使用java进行简单的标准IO操作. 操作步骤 1. 定义一个Scanner对象 2. 调用该对象的input函数族 (参见下面代码) 3. input函数的返回结果即是获取到的输入 示 ...

  6. HDU 4311 前缀和

    Description It has been ten years since TJU-ACM established. And in this year all the retired TJU-AC ...

  7. Open经验库网址

    http://www.open-open.com/lib/view/open1436094840774.html

  8. 前后台Json的转换

    jsp:JSON.stringify(params):params:表示数组 servlet:Store store = (Store) JSONObject.toBean(JSONObject.fr ...

  9. 4.2springmvc校验

    1.hibernate的校验框架validation所需要jar包: 2 在applicationContext.xml中配置校验器: <!-- 校验器 --> <bean id=& ...

  10. GRANT ALL PRIVILEGES 限制某个或所有客户端都可以连接至mysql

    GRANT ALL PRIVILEGES 1. 改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mys ...