一个登陆程序及问题若干
来源:互联网 发布:linux oracle启动 编辑:程序博客网 时间:2024/05/22 00:44
(编号与注释相关)
(1)out.println("<html>")等等这些都是存放在缓存中的,当程序执行到RequestDispatcher接口的forward(..)方法之后,原先在响应缓存中没有提交的内容将被自动清除。如果是include(..)方法将请求转发给其他的servlet,被调用的servlet对该请求做出的响应将并入原先的响应对象中,原先的servlet还可以继续输出响应信息。
(2)如果在一个表单中用户名和密码的名称分别为user和password,那么在servlet中定义String类型来request.getParameter()时,也可以定义成user和password,不会冲突。
(3)为简化IE地址以及程序中servlet名字,在web.xml的<url-pattern>中将/servlet/LoginServlet1改成/servlet/Login1,将/servlet/LoginServlet2改成/servlet/Login2,则在浏览器中的地址也相应改变。注意更改web.xml后要重启服务器。
(4)关于ServletContext对象.getRequestDispatcher(..)和request.getRequestDispatcher(..)。
两个方法的参数都是资源路径名(可以是servlet或jsp文件)。
ServletContext对象.getRequestDispatcher(..)方法的参数必须以"/"开头,因为这个路径是相对于当前的web路径。(比如book工程,servlet位于fo包,则web路径为http://localhost:8080/book,此处假设web.xml中<url-pattern>都为默认带/servlet)在该例中,如果是servlet文件,则应该写成ServletContext对象.getRequestDispatcher("/servlet/WelcomeServlet")。如果是jsp文件,则应是ServletContext对象.getRequestDispatcher("/WelcomeJsp.jsp")。
request.getRequestDispatcher(..)方法参数是相对于当前(所谓当前,该例子中是以LoginServlet1为准,即在地址栏中输入的那个servlet)servlet路径(比如book工程,servlet位于fo包,则servlet路径为http://localhost:8080/book/servlet,此处假设web.xml中<url-pattern>都为默认带/servlet)。在该例中,如果是servlet文件,则应该写成request.getRequestDispatcher("Login2")(注意此处不是LoginServlet2,(3)中已经改变了<url-pattern>)。如果是jsp文件,则情况较复杂,要把web.xml中<url-pattern>的/servlet/Login1改为/Login1,程序中实现过,不详述。
程序源码如下:
(a)LoginServlet1.java
(b)LoginServlet2.java
(c)WelcomeServlet.java
(d)WelcomeJsp.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 'WelcomeJsp.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>
<div align="center"><strong>登陆成功</strong>
<br>
欢迎<%String user=request.getParameter("user");
out.print(user);%>
<br>
</div>
</body>
</html>
(e)web.xml
http://localhost:8080/book/servlet/Login1 用户名为ping,密码为yang
context.getRequestDispatcher("").forward(request,response)只能是绝对路径。request.getRequestDispatcher("").forward(request,response)可以是绝对路径可以是相对路径。
response.sendRedirect("")可以是绝对路径也可是相对路径
RequestDispatcher rd=request.getRequestDispatcher("Login2.jsp");
- 一个登陆程序及问题若干
- 登陆界面一个简约的模板及问题注意事项
- 登陆程序的逻辑问题
- 修正了一个登陆程序的错误
- 一个简单的登陆界面程序
- myeclipse编写的一个简单登陆程序
- 关于微信小程序登陆的问题
- 登陆不了phpmyadmin的一个小问题
- expect 自动登陆的一个问题
- 无法登陆ubuntu问题的一个解决方法
- 小程序若干
- ssh学习--登陆及设置问题
- plsql登陆及数据库char类型问题
- MySQL无法登陆及密码修改问题
- plsql登陆及数据库char类型问题
- phpcms 后台登陆及版权修改问题
- phpcms 后台登陆及版权修改问题
- 一个程序问题
- [转]WinForm数据绑定--BindingContext
- Lucene:基于Java的全文检索引擎简介
- 整理一些提高PHP性能的技巧
- racle 10g RAC 在HP-UX v3+MC ServiceGuard环境的安装【转】
- ASP.net(c#)生成条形码
- 一个登陆程序及问题若干
- 用SQLLDR将Linux的用户文件passwd导入数据库
- SystemC 数据类型
- 用SQLLDR将Linux的用户文件passwd导入数据库
- 把字符串转换成整数--总结
- 认识 GCC 4
- 两种数据库,四种分页算法的效率比较
- 网站制作流程
- 自学PHP