- 浏览: 233784 次
文章分类
- 全部博客 (160)
- java语言基础 (67)
- jsp基础 (2)
- eclipse使用 (2)
- java源码解读 (6)
- 计算机基础 (3)
- eclipse插件 (0)
- 网络基础 (8)
- 算法 (2)
- linux (0)
- 英语 (0)
- C语言 (4)
- JavaScript (17)
- 数学 (0)
- struts2 (2)
- 自然哲学 (0)
- Servlet (1)
- HttpServer (2)
- ext (1)
- 个人 (1)
- dojo (27)
- spring (2)
- hibernate (4)
- css (3)
- 多线程 (0)
- chrome插件开发 (0)
- svn (0)
- thrift (2)
- phonegap (1)
- java线程 (1)
- 不是很熟悉的css属性 (0)
- 数据库性能调优 (0)
- 项目管理 (1)
- ios (0)
- 软件工程 (0)
- db2 (0)
- 词汇管理 (0)
- zhenyan (0)
- 计划 (0)
- android (0)
- ssss (0)
- 是的 (0)
- dsada (0)
- 泛点是 (0)
- fds (0)
- cxzc (0)
- 权限 (0)
- dfsfds (0)
- http://www.cnblogs.com/kingboy2008/p/5261771.html (0)
- sss (0)
- ddd (0)
- fdsfdsf (0)
- sso (0)
- nginx (0)
- 分布式数据一致性 (0)
- mysql (0)
- ios永久存储 (0)
- js匿名函数 (0)
- 打印机qqq (0)
最新评论
写了个请求转发的程序:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>用户登录</title> </head> <body> <form name="login" action="myurl6" method="post"> <table> <tr> <td>用户名:</td> <td><input type="text" name="name"></td> </tr> <tr> <td>密 码:</td> <td><input type="password" name="password"></td> </tr> <tr> <td>  </td> <td><input type="submit" value="提交"></td> </tr> </table> </form> </body> </html>
public class CheckUserInfo extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String userName = req.getParameter("name"); // 要和html文件表单对应 String password = req.getParameter("password"); try { Class.forName("com.mysql.jdbc.Driver"); // DriverManager.registerDriver(new com.mysql.jdbc.Driver()); String dbUrl = "jdbc:mysql://localhost:3306/mydata"; String dbUser = "root"; String dbPassword = "chua2007"; Connection con = DriverManager.getConnection(dbUrl, dbUser, dbPassword); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("select * from users"); boolean flag = false; while (rs.next()) { if (rs.getString(1).equals(userName) && rs.getString(2).equals(password)) { req.setAttribute("msg", userName); flag = true; } } if (flag == false) { req.setAttribute("msg", "用户名或密码错误!"); } ServletContext context = this.getServletContext(); RequestDispatcher dispatcher = context .getRequestDispatcher("/myurl7"); dispatcher.forward(req, resp); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
public class Login extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String msg = (String) req.getAttribute("msg"); resp.setContentType("text/html;charset=GB2312"); PrintWriter out = resp.getWriter(); out.println("<html><head><title>my title</title></head>"); out.println("<body>"); out.println(msg); out.println("</body></html>"); // out.flush(); out.close(); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
但是无论输入正确的用户名还是错误的,客户端浏览器总是显示“用户名或密码错误”;经过检查,总算发现错误了,,浪费了很多时间,原来浏览器表单数据传输时默认是ISO-8859-1编码的,所以在CheckUserInfo获取参数时出现问题。
应该写成:
req.setCharacterEncoding("GB2312"); String userName = req.getParameter("name"); //要和html文件表单对应 String password = req.getParameter("password");
发表评论
-
mysql并发
2013-01-08 13:38 0/** * 测试msql JDBC连接并发安全性 ... -
java注解2
2013-01-06 22:02 1021由前一篇的代码,运行代码如下:public clas ... -
java注解1
2013-01-06 21:56 948本文演示java注解的使用 1. getDe ... -
Java集合框架分析
2012-08-29 21:28 01. Java集合整体框架 下面的两张图说明 ... -
AbstractList
2012-08-29 20:48 980public abstract class Abstra ... -
Set
2012-08-28 11:17 683public interface Set<E> e ... -
List源码
2012-08-28 11:15 1011public interface List<E&g ... -
Collection源码
2012-08-28 11:13 949public interface Collection< ... -
java集合框架
2012-08-28 10:39 0java的集合框架中,主要有3类常用的集合。 -
web的debug
2012-03-29 10:48 0hh -
文件读取
2012-03-10 19:32 0public class Util { publ ... -
HTML元素的访问
2011-11-30 09:31 0有3忠方法可以访问html中的元素。 -
Schema数据类型
2011-11-26 16:34 0Schema不仅内置了丰富的数据类型,而且还允许开发者 ... -
初学XML3
2011-11-26 10:08 0编写了XML Schema语义约束之后,必须将其导入目 ... -
初学XML2
2011-11-26 09:22 821<?xml version="1.0& ... -
初学XML
2011-11-26 08:50 890<?xml version="1.0&q ... -
JavaScript字符串
2011-11-19 21:29 921JavaScript有三种基本数据类型,字符串,数字以 ... -
项目管理
2011-11-05 22:39 0项目管理开始于项目计划阶段,贯穿于整个系统开发生命周期 ... -
项目可行性分析
2011-11-05 21:23 0项目可行性包括三个方面:技术可行性,经济可行性,组织 ... -
系统开发生命周期
2011-11-05 21:16 0系统开发生命周期有四个4个基本阶段: 计划- ...
相关推荐
本文将详细讲解如何在Servlet中实现请求转发以及用户登录验证。 首先,我们来理解请求转发(Request Forward)。在Servlet中,请求转发是一种在服务器内部将一个请求从一个资源传递到另一个资源的技术。这种方式是...
Servlet请求转发、重定向和包含是Servlet中处理客户端请求的重要技术,它们都涉及到如何有效地管理用户请求和页面跳转,但各自有不同的特性和应用场景。 1. **请求转发(Request Forward)** - 请求转发是在服务器...
### Java Servlet 请求转发与重定向详解 #### 一、引言 在Java Web开发中,请求转发和重定向是两种非常重要的技术手段,用于控制页面之间的跳转逻辑。这两种技术虽然都能实现页面间的跳转,但其工作原理、应用场景...
Java Servlet 请求转发和重定向 Java Servlet 请求转发和重定向是两种不同的页面跳转机制,它们在 Web 应用程序中扮演着重要的角色。理解这两种机制的区别和使用场景是非常重要的。 请求转发是指将请求再转发到另...
1. 转发的范围:RequestDispatcher.forward 方法只能将请求转发给同一个 WEB 应用中的组件,而 HttpServletResponse.sendRedirect 方法可以重定向到当前应用程序中的其他资源,也可以重定向到同一个站点上的其他应用...
在Java Web开发中,Servlet、请求转发和过滤器是核心概念,它们构成了Web应用程序的基础架构。下面将分别详细解释这三个知识点,并结合 `${}` 符号的使用进行深入探讨。 1. Servlet: Servlet 是 Java 提供的一种...
Java中Request请求转发是指在Servlet中使用RequestDispatcher将请求转发到另一个Servlet或JSP页面,以实现请求的重定向或包含。在本文中,我们将通过示例代码详细介绍Java中Request请求转发的实现过程。 ...
主要分为直接请求转发(Forward)和间接请求转发(Redirect)。这两种转发方式在处理请求时有着显著的区别。 直接请求转发(Forward): 直接请求转发是服务器内部的资源调度,用户在浏览器中只会看到最初的请求...
Java Servlet 中可以通过 `RequestDispatcher` 的 `forward` 方法来实现请求转发。例如: ```java RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); dispatcher.forward(request, ...
1. 深入理解HTTP协议:了解HTTP请求和响应的工作原理,包括状态码的意义,这对于理解请求转发和重定向如何工作至关重要。 2. 实践编程:通过编写实际的Servlet或Filter来实现请求转发和重定向,这能帮助你更好地...
### JSP和Servlet请求与响应详解 #### 一、JSP内置对象概述 JSP(Java Server Pages)是一种用于创建动态网页的技术。它基于Java Servlet规范,并提供了许多内置对象,以便开发者可以更方便地处理HTTP请求和响应。...
1. **客户端行为**:请求转发对客户端透明,客户端并不知道请求被转发了;而重定向则是客户端收到服务器的响应后,自己发起新的请求。 2. **URL显示**:转发后,浏览器地址栏的URL保持不变;重定向会导致浏览器地址...
5. **请求转发与重定向**:Servlet可以使用`RequestDispatcher`的`forward()`方法将请求转发到其他资源,而`sendRedirect()`方法则会向客户端发送一个HTTP重定向响应。 6. **会话管理**:Servlet可以通过`...
3. 使用`request.getRequestDispatcher().forward()`将请求转发给JSP页面。 4. 在JSP页面中,通过`request.getAttribute()`获取并显示参数值。 理解这些基本概念对于开发Java Web应用至关重要,这有助于构建动态、...
当客户端(通常是浏览器)向Web服务器(如Apache)发送HTTP请求时,Web服务器会将请求转发给Web容器。容器解析请求,创建HttpServletRequest和HttpServletResponse对象,这两个对象分别用于存储请求信息和准备响应。...
当服务器接收到一个请求后,它可以选择不直接处理这个请求,而是通过`RequestDispatcher`对象将请求转发到另一个资源,比如Servlet或JSP页面。在这个过程中,客户端浏览器并不知道这个变化,它仍然认为自己请求的是...
- **请求转发**:服务器内部将请求转发到另一个资源处理。 ##### 2.1 请求方式 - **GET**:安全且幂等,适用于查询操作。 - **POST**:不安全,不幂等,适用于修改数据的操作。 ##### 2.2 重定向与请求转发 - **...
通过该方法可以将当前请求转发到另一个资源(如Servlet或JSP页面)进行处理,并且转发过程中会保留原请求的数据和状态。这种机制对于构建复杂的应用流程非常有用,它可以帮助开发者更好地组织代码结构,提高程序的可...