先把实验3的jsp页面复制过来;

WebContent->WEB-INF->lib下面的jar包8.0版本也要记得复制;

Java Resources->src下的 cn.edu.henu.bean(User.java 用户数据库操作)和cn.edu.henu.util(DBConnection.java 数据库的连接操作)这两个包

【可以更改默认启动的jsp页面】

<?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>ws_shiyan3</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>addUser.jsp</welcome-file>
1
2
3
4
5
6
7
使用Servlet技术改写用户登录

src -> 新创建一个package “cn.edu.henu.servlet” ->新建一个servlet类名 “LoginCheckServlet” ->URL mapping设置为"/CheckServlet"
改写dopost()方法,把实验三 check.jsp的登陆验证代码复制过来即可
String name=request.getParameter("name");
String pwd=request.getParameter("pwd");
PreparedStatement pt=null;
Connection con = null;
User user = null;
try {
//JDBC访问数据库
con=DBConnection.openConnection();//获取数据库连接
String sql="SELECT * from login WHERE user=? AND passwod=?";
pt=con.prepareStatement(sql);
pt.setString(1, name);
pt.setString(2, pwd);
ResultSet rs=pt.executeQuery();
System.out.println("?????????????????????");
if(rs.next())
{
response.sendRedirect("connsuccess.jsp");
}
else{
response.sendRedirect("connError.jsp");
}

} catch (SQLException e) {
e.printStackTrace();}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
大家也可以参考这个 JSP+Servlet 的用户登录
【注意】这里User user = null; 下面黄色报警 所以我刚开始注释掉了,结果CheckServlet页面就404, 后来取消注释才可以

有两种方法配置Servlet
①自动在LoginCheckServlet页面生成的@WebServlet("/CheckServlet")
②在web.xml下面配置
<servlet>
<servlet-name>LoginCheckServlet</servlet-name>//使用类名创建一个对象
<servlet-class>cn.edu.henu.servlet.LoginCheckServlet</servlet-class>//自己创建的servlet类
</servlet>
<servlet-mapping>
<servlet-name>LoginCheckServlet</servlet-name>//实际执行的对象
<url-pattern>/CheckServlet</url-pattern>//自定义的URL Mapping
</servlet-mapping>
1
2
3
4
5
6
7
8
【注意】这里名字要匹配哦
【注意】两个方法只能选一个配置,否则会报错
使用Filter技术解决中文乱码

src -> new Filter ( package的名字是" cn.edu.henu.Filter " , Filter名字是 “EncodingFilter” , MAP的名字我没有改 EncodingFilter
接着在doFilter()下输入 request.setCharacterEncoding(“utf-8”); 即可
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
request.setCharacterEncoding("utf-8");
// pass the request along the filter chain
chain.doFilter(request, response);
}
1
2
3
4
5
6
7
大家可以参考这篇文章或者是 课本158页下面的代码

在web.xml下进行filter的配置,web.xml好像没法写注释欸?= =
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>cn.edu.henu.filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern> //拦截所有请求
</filter-mapping>
1
2
3
4
5
6
7
8
【疑惑】这次我没有注释EncodingFilter.java下的代码“@WebFilter("/EncodingFilter")”,但是好像没有报错。。。
---------------------

Javaweb 使用Servlet技术改写用户登录 使用Filter技术解决中文乱码的更多相关文章

  1. Web---演示servlet技术(servlet生命周期),解决中文乱码问题

    本节讲解决中文乱码问题的4种方法. 还有更好的方法,也就是用过滤器,这里就不演示了,博主目前也不会~呼♪(^∇^*)~过段时间才会学. servlet生命周期演示: index.jsp: <%@ ...

  2. 【JavaWeb】从零实现用户登录

    1.数据库预备 1.1 SQL 创建数据库 create database db; 创建表 create table userInfo( id int primary key , name ), pa ...

  3. jsp&servlet初体验——用户登录功能实现

    数据库准备-创建db_login数据库  t_user表 1.创建web工程 2.创建用户model   user.java package com.gxy.model; public class U ...

  4. Servlet课程0425(四) Servlet实现简单用户登录验证

    Login.java //登录界面 package com.tsinghua; import javax.servlet.http.*; import java.io.*; public class ...

  5. iOS开发一个用户登录注册模块需要解决的坑

    最近和另外一位同事负责公司登录和用户中心模块的开发工作,开发周期计划两周,减去和产品和接口的协调时间,再减去由于原型图和接口的问题,导致强迫症纠结症状高发,情绪不稳定耗费的时间,能在两周基本完成也算是 ...

  6. Django Admin 后台Admin继承UserAdmin增加用户密码不显示明文和用户登录不了的解决方法

    Django后台Admin继承UserAdmin增加用户不显示明文方法 1.在 models.py 中用户表 # 导包规范-1.Python标准模块 from django.db import mod ...

  7. Servlet中通过过滤器实现统一的手动编码(解决中文乱码)

    1.web.xml片段: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi= ...

  8. Servlet学习(五)——通过response设置响应体及中文乱码问题

    1.响应体设置文本 PrintWriter writer=response.getWriter(); 获得字符流,通过字符流的write(String s)方法可以将字符串设置到response 缓冲 ...

  9. 编写Servlet,验证用户登录,如果用户名与密码都为“admin”则验证通过,跳转欢迎页面,否则弹出提示信息“用户名或密码错误,请重新输入!”,点击“确定”后跳转至登录页面

    java代码:(Test1) package com.test; import java.io.IOException; import java.io.PrintWriter; import java ...

随机推荐

  1. shell函数返回值

    1.用return作为函数的退出状态,然后通过echo $?来得到函数返回值,注意,return返回的值限定为0-255. 例子: #! /bin/bash sum() { let "z=$ ...

  2. Swift: 一句话获取虚拟机上APP所在的目录

    在XCode6上,虚拟机的App的存放位置发生了变化,通过下面语句,我们可以立即获得其所在的位置: println(NSTemporaryDirectory())

  3. IntelliJ IDEA 给表达式赋变量名称

    IntelliJ IDEA 给表达式赋变量名称 学习了:http://blog.csdn.net/tiny__wang/article/details/52988790 类似于Eclipse中的ctr ...

  4. UINavigationController具体解释(一)

    @UINavigationControlle简单介绍: 1.导航控制器,专门管理控制器的控制器. 2.採用栈的方式管理全部controller,每一个controller管理各自的视图 @UINavi ...

  5. 使用oracle数据库和MySQL数据库时hibernate的映射文件.hbm.xml的不同

    假设是使用oracle数据库.那么hibernate的映射文件.hbm.xml例如以下: <id name="xuehao" column="xuehao" ...

  6. @Component注解

    @component (把普通pojo实例化到spring容器中,相当于配置文件中的 <bean id="  " class="   "/>)泛指各 ...

  7. Mongodb---记一次事故故障

    2014.06.19.001---故障报告 事故发生时间 事故简述 事故责任方 是否解决 19:21-20:15 IISserverD盘即将溢出 是 一.事故描写叙述: 在19:21收到警报.显示II ...

  8. oc62--block1

    // // main.m // Block的应用场景 // typedef void (^workBlock)(); #import <Foundation/Foundation.h> / ...

  9. 【POJ 2230】 Watchcow

    [题目链接] http://poj.org/problem?id=2230 [算法] 欧拉回路 [代码] #include <algorithm> #include <bitset& ...

  10. Gym - 101981D The 2018 ICPC Asia Nanjing Regional Contest D.Country Meow 最小球覆盖

    题面 题意:给你100个三维空间里的点,让你求一个点,使得他到所有点距离最大的值最小,也就是让你找一个最小的球覆盖掉这n个点 题解:红书模板题,这题也因为数据小,精度也不高,所以也可以用随机算法,模拟 ...