jsp-servlet 的相关请求路径问题 —url
jsp-servlet 的相关请求路径问题 —url
本文章主要解决的几方面问题如下:
- 常见涉及路径元素;
- jsp页面请求和servlet请求转发、重定向的关系
- 如何避免下一步请求受上一步请求在URL方面的问题
常见涉及路径元素:
- 表单中的action属性 ,其值是提交表单的请求。action中指向的路径与最终请求的页面或servlet关系不大,比如可以指向html页面,可以指向jsp页面(当然,从某方面来讲,两者是一样的,也可以写serlet的urlPatterns指定的位置。)
- 重定向。先看代码
response.sendRedirect("Jsp/Login.jsp");
此处的重定向实现的是:让服务器对客户端进行响应,并让客户端对project_name/jsp/Login.jsp页面重新请求。显示的url为新的请求的url
- 请求转发。先看代码
request.getRequestDispatcher("Jsp/Home.jsp").forward(request, response);
此处的请求转发实现的是将请求转发到project_name/jsp/Login.jsp页面.显示的url是该servlet的url,即可以看出在servlet中进行了处理
jsp页面请求和servlet请求转发、重定向的关系:
表单请求会携带表单信息,其中get方式信息在url中,post方式是在请求体当中。而在开发工作中,经常会在servlet中进行获取,根据信息判断进行相应的处理,之后再来进行请求或转发。典型的代表就是登陆表单的验证,密码正确转发到下一步,密码错误重定向到登录界面。
如何避免下一步请求受上一步请求在URL方面的问题:
假如在servlet的注解为
@WebServlet(name = "LoginServlet", urlPatterns = "/LoginServlet")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
if ("密码正确的代码") {
request.getRequestDispatcher("Jsp/Home.jsp").forward(request, response);
} else {
response.sendRedirect("Jsp/Login.jsp");
}
}
表单action为
action="LoginServlet"
那么在第一次就密码正确可以登录,可是第一次错了重新输入后登录就吹出现路径问题
原因是重定向后客户端发出的请求与正确的servlet 的urlPatterns值不一致。解决办法就是将表单的请求从根目录开始,即
action="/Personal_name/LoginServlet"
备注:
路径中默认的是 ./ 表示当前目录
- ../表示上一级目录
- / 表示根目录
jsp-servlet 的相关请求路径问题 —url的更多相关文章
- 第二章.JSP/Servlet及相关技术详解
JSP的4种基本语法: 1.JSP注释: <%-- JSP注释部分 --%> 2.JSP声明: <%! //声明一个整型变量 public int count; //声明一个方法 p ...
- 从0开始学Java——JSP&Servlet——HttpServletRequest相关的几个路径信息
在HttpServletRequest中有几个获取路径的接口:getRequestURI/getContextPath/getServletPath/getPathInfo 这些接口互相之间有什么区别 ...
- 【Servlet】—在servlet中常混的请求路径
在页面请求,后台获取相关请求路径是,自己长搞混的几个路径,再次做次标记,不要每次使用想不起来是,都去写一个小的demo来测试. request.getContextPath(); request.ge ...
- Servlet各种路径、URL配置分析
大家都知道,Servlet有个配置: <servlet> <servlet-name>zolltyMVC</servlet-name> <servlet-cl ...
- JSP、Servlet中的相对路径和绝对路径 页面跳转问题
转自:http://blog.csdn.net/wym19830218/article/details/5503533/ 1.JSP.Servlet中的相对路径和绝对路径 前提:假设你的Http地址为 ...
- Javaweb中的请求路径的相关总结
重定向和转发相对路径和绝对路径问题 注意:转发和重定向的URLString前有加 / 为绝对路径 反之为相对路径 1.假设通过表单请求指定的Url资源 action="LoginServ ...
- JSP Servlet 路径解析 路径设置
转自:http://ethen.iteye.com/blog/800415 在用JSP和Servlet编写Web应用时,经常遇到的问题就是找不到.do路径,或者.do路径不能解析,其实归根到底就是Se ...
- jsp servlet路径问题
最近做小作业时饱受路径问题的困扰,记录一下: 当工程目录如上所示时,路径应该这么写: 情况1:根目录下 login.jsp中的表单提交给Servlet时,可以直接写Servlet名: <form ...
- js进阶ajax的XMLHttpRequest对象的status和statustext属性(如果ajax和php联合使用的话:open连接服务器的第二个参数文件路径改成请求php的url即可)
js进阶ajax的XMLHttpRequest对象的status和statustext属性(如果ajax和php联合使用的话:open连接服务器的第二个参数文件路径改成请求php的url即可) 一.总 ...
随机推荐
- Visual Studio 2013 配置多个Release版本,并为每个版本配置预编译的宏
最近开发过程中,需要将同一份工程编译成两个版本,分别为ReleaseA和ReleaseB. ReleaseB比ReleaseA少了部分功能,所以希望在编译的时候,根据不同的版本编译工程中相应的代码. ...
- 背水一战 Windows 10 (76) - 控件(控件基类): Control - 基础知识, 焦点相关, 运行时获取 ControlTemplate 和 DataTemplate 中的元素
[源码下载] 背水一战 Windows 10 (76) - 控件(控件基类): Control - 基础知识, 焦点相关, 运行时获取 ControlTemplate 和 DataTemplate 中 ...
- string Type
Notes from C++ Primer Operations Operations of string support lots of operations of sequential conta ...
- hotmail 收不到邮件的问题
之前用 hotmail 注册过一个 aws 账号,起了一个 ec2 的免费一年的 VPS,然后没怎么用,不久就把这事忘了. 直到有一天手机收到信用卡扣款消息,我就马上去登账号,却怎么也想不起密码来了, ...
- centos7上安装nagios
前言:Nagios是一款开源的免费网络监视工具,可以监控Windows.Linux和Unix的主机状态,交换机路由器等网络设备,在系统或服务状态异常时发出邮件或短信报警,第一时间通知网站运维人员.流量 ...
- nginx代理tomcat做负载
先对三台服务器统一环境. 对两台tomcat服务器的操作 查看jdk环境 # java -version openjdk version "1.8.0_65" OpenJDK Ru ...
- python实现线性排序算法-计数排序
计数排序假定输入元素的每一个都是介于0到k之间的整数,此处K为某个整数,当k=O(n)时,计数排序的运行时间为O(n) 它的基本思想是:根据每个输入元素x确定小于x的元素个数,根据这个信息把x直接放到 ...
- numpy 介绍
NumPy系统是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩 ...
- centos7使用lldb调试netcore应用转储dump文件
centos7下安装lldb,dotnet netcore 进程生成转储文件,并使用lldb进行分析 随着netcore应用在linux上部署的应用越来越多,碰到cpu 100%,内存暴涨的情况也一直 ...
- ajax 请求被终止 chrome查询发现请求状态status为canceled
检查页面的network执行中发现页面被刷新了url改变了导致请求在请求过程中被终止了. 检查代码发现在 submit方法中最后写了个 location.reload();方法 来重载页面 虽然是卸 ...