这个问题实际上就是对forword和include的区分
在项目中,首先需要去取数据库中的数据,读出来在进入action后显示在首页中,通常我们会采取写一个页面index.html 进行打开页面跳转window.onload="xx?action=xx" 这样来进入action后取值,在返回相应的页面
这种方法导致我们的主域名也就是 www.xx.com 跳转成了 www.xx.com?action=xx
虽然不影响浏览,但我相信绝大多数的boss不希望看到自己的网站主页显的那么陌生
解决方法
<%request.getRequestDispatcher("/login.pt?tag=index").forward(request,response);%>
这样取数据后调转了不会影响主域名的更改,实际操作中也都是这样来完成的
下面是我对以前知识的回顾,自己记下来吧
首先,sendRedirect与forward,include的最大区别是request,response..
sendRedirect 产生新的请求与响应,前后已没有联系.
相当于在页面中重新输入一个URL,只是自动完成而已.
forward,include是共用同一请求.客户端完全不知道(浏览器中的URL不变)
使用方式:
servlet和jsp里面一样
Java 代码
response.sendRedirect();
response.sendRedirect();
其次,forward与include的区别.
调用forward()方法时必须注意下列两点:
在HTTP回应被“确认” (committed)以前才能调用forward()方法(这里的“确认”是指将HTTP回应的内容主体送回用户端),否则将拋出 IllegalStateException异常。[include没有这种情况]
调用forward()方法后,原先存放在 HttpResponse对象中的内容将会自动被清除(也就是在forward方法前,使用 PrintWriter,ServletOutputStream输出的内容都被忽略)
[include不会]
使用方式
Servlet 中
Java代码
getServletContext().getRequestDispatcher(path).include(request,response);
getServletContext().getRequestDispatcher(path).forward(request,response);
getServletContext().getRequestDispatcher(path).include(request,response);
getServletContext().getRequestDispatcher(path).forward(request,response);
这里面的path必须以"/",相对于当前WEB应用程序根目录
Java代码
request.getRequestDispatcher(path).include(request,response);
request.getRequestDispatcher(path).forward(request,response);
request.getRequestDispatcher(path).include(request,response);
request.getRequestDispatcher(path).forward(request,response);
这里面的path可以是以"/"开头,也可以使用相对路径.
在JSP中
Java代码
<jsp:include page=""/>
<jsp:forward page=""/>
<jsp:include page=""/>
<jsp:forward page=""/>
forward在SERVLET 与JSP中表现不一致:servlet中:运行forward方法,后面的语句会执行完,再去执行forward方法 (符合JAVA程序运行顺序)
在 jsp中,运行到forward后,直接跳转,后面的语句不再执行.
两者的区别:
forward方法是把请求的内容转发到另外的一个servlet/jsp.
include是把另一个servlet/jsp处理过后的内容拿过来与此时servlet的内容一同输出.
----------------------------------------------------------
forward 与include还有一个重要的区别:
forward在调用者程序中设置的响应状态码和响应头不会被忽略,在被调用者程序中设置的响应状态码和响应头也不会被忽略.
include会被忽略..
这也是乱码的一个原因..
使用include时候,要要调用程序中写上 response.setContentType("text/html;charset=utf-8")
不管你是不是用filter统一处理过字符.
===================================================================
分享到:
相关推荐
4. 表单验证:了解如何在客户端进行简单的密码验证,这通常是为了用户体验,真正的安全性验证应在服务器端进行。 5. 安全注意事项:虽然这种方法提供了一定的保护,但纯前端的密码验证不安全,因为密码可以在网络...
5. **后端配置**:在服务器端,我们可能需要修改Spring Boot的配置文件(application.yml或application.properties),或者在主启动类中调整初始化代码,以控制用户登录后的重定向行为。 6. **自定义过滤器**:在...
在服务器端,我们可以通过设置HTTP响应头来实现跳转。例如,在PHP中,可以使用以下代码: ```php header("Location: http://newurl.com"); exit; ``` 这段代码告诉浏览器,它应该导航到`http://newurl.com`。注意...
在这个过程中,客户端浏览器的URL不会改变,因为整个过程都在服务器端进行。请求转发可以共享请求属性和模型数据,因为请求对象在整个转发过程中保持不变。 2. 请求跳转: 请求跳转则是客户端参与的过程。服务器会...
请求转发发生在服务器端,使用`RequestDispatcher`的`forward()`方法。在这种情况下,服务器不会向客户端发送新的HTTP响应,而是将请求转发到另一个资源,客户端浏览器看到的是连续的单一请求过程。例如: ```...
这些参数可以在服务器端通过`$_GET`或者`$_POST`获取,然后用于计算正确的`LIMIT`和`OFFSET`值。 3. **计算总页数**:根据数据总量和每页显示的数量,我们可以计算出总页数。这需要在服务端进行,确保数据的正确性...
这种方式是服务器端控制跳转,客户端浏览器地址栏不会改变。 ```jsp ; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <title>JSP Forward示例 ``` 2. **Response.sendRedirect()方法...
而Servlet则是一种运行在服务器端的Java应用程序,可以处理HTTP请求并生成响应。两者结合使用时,JSP通常负责展示层逻辑,如页面布局、样式和简单的业务逻辑;而Servlet则负责更复杂的业务逻辑处理,包括数据库操作...
这种方式的优点在于不受服务器端语言限制,适用于任何类型的Web应用。 #### 3. 使用HTML的`meta`标签 HTML5中也提供了一种自动刷新页面的功能,通过`meta`标签的`http-equiv`属性来控制页面的自动跳转。 ```html ...
在IT行业中,PHP是一种广泛使用的服务器端脚本语言,尤其在网页开发中占据了重要的地位。当我们谈论"PHP劫持跳转代码"时,这通常涉及到一种安全问题,即恶意攻击者利用PHP代码来控制或篡改网站的行为,使得用户在...
- **请求转发(Forward)**:使用`request.getRequestDispatcher()`.forward(request, response)`方法,这个操作在服务器端完成,不涉及新的HTTP请求。请求转发可以共享请求参数和对象,但不应用于跨安全域的跳转。...
需要注意的是,JavaScript的域名判断通常是在页面加载时执行的,因此可能不如服务器端语言那样精确和及时。此外,JavaScript的语法错误在上述示例中存在,例如`elseif`应为`else if`。 ### 结论 域名判断后的跳转...
在用户成功登录后,服务器会生成一个唯一的Session ID,并将其存储在服务器端(例如内存或数据库)。同时,这个ID会通过Cookie返回给客户端。此后,每次客户端发送请求时,都会携带Session ID,服务器据此识别出用户...
- **应用场景**:通常用于处理完业务逻辑后,将控制权交给下一个页面来展示数据,而这些数据可能需要通过服务器端处理才能获取。 2. **重定向(redirect)**: - **定义**:重定向是在服务器端告知客户端浏览器去...
为了实现这一目标,开发者通常会采用多种技术手段,包括但不限于URL重写、`QueryString`、服务器端跳转(`Redirect`)以及客户端脚本等。 #### 二、URL重写与QueryString URL重写是一种常见的参数传递方式,它通过...
如果NCCloud使用了Spring Security,那么白屏可能是因为认证过滤器没有正确配置,导致用户认证成功后未能跳转到预期的主页,或者是权限控制逻辑存在问题,阻止了页面的正常显示。 2. **CAS(Central Authentication...
这个表单通过POST方法提交数据到服务器端的JSP页面处理。表单元素通常用HTML编写,但可以嵌入JSP脚本来增强功能。 2. **请求处理**:当用户提交登录信息后,JSP页面接收到HTTP请求,此时可以使用`<jsp:useBean>`或`...
在互联网世界中,500错误是一个常见的服务器端错误,通常表示服务器遇到了意外情况,无法完成请求。"实用的500错误跳转页面模板.zip" 提供了一种优雅地处理这种错误的方法,帮助网站提供更好的用户体验。这个压缩包...
如果页面跳转的控制逻辑需要在服务器端进行处理,比如验证用户权限或者处理某些服务器端数据,那么可以在PHP脚本中设置HTTP响应头来控制页面跳转。PHP提供了一个header()函数,允许我们发送一个原始的HTTP头给...
首页端本地跳转功能是指当用户在首页点击某个链接时,页面能够在当前网站内部完成跳转,而不是跳转到外部链接。这种方式有助于保持网站流量,防止用户流失。此外,本地跳转还可以减少外部链接对网站性能的影响,...