关于JSP不能通过浏览器直接访问,要通过servlet跳转,但一个jsp文件里面用<iframe>标签包含了另一个jsp的访问问题
来源:互联网 发布:eviews软件官方下载 编辑:程序博客网 时间:2024/04/30 06:04
关于JSP不能通过浏览器直接访问,要通过servlet跳转,但一个jsp文件里面用<iframe>标签包含了另一个jsp的访问问题
今天在上班的时候遇到一个问题,以前我们写jsp代码都是放在webcontext 目录下,没有放在其子目录下面的WED-INF目录下面,所有导致浏览器可以直接访问jsp,所以存在安全性问题很大,经过了解,正确的写法是把jsp文件放在WED-INF目录下面,再通过控制器跳转。如果直接浏览器访问这个放在WED-INF目录下面的jsp就会出现404页面,找不到jsp文件。
1.首先我们来看一下放在WEB-INF目录下面的test1.jsp 是不能直接访问的,放在WebContext下面的是能够直接访问的。如图(1.1,1.2)
图1.1(jsp文件目录)
图1.2(浏览器直接访问WEB-INF下面的jsp)
图1.3(浏览器直接访问WebContext目录下面的jsp)
2.但是我们可以通过servlet跳转来访问的test1.jsp。
下面是servlet代码:
1 package com.servlet; 2 3 import java.io.IOException; 4 import javax.servlet.ServletException; 5 import javax.servlet.annotation.WebServlet; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 @WebServlet("/TestServlet")11 public class TestServlet extends HttpServlet {12 private static final long serialVersionUID = 1L;13 public TestServlet() {14 super();15 }16 protected void service(HttpServletRequest request,17 HttpServletResponse response) throws ServletException, IOException {18 request.setCharacterEncoding("utf-8");19 response.setContentType("text/html;charset=utf-8");20 request.getRequestDispatcher("/WEB-INF/test1.jsp")21 .forward(request, response);22 }23 24 }
然后就能够访问test1.jsp了
图2.1(通过servlet跳转访问在WEB-INF目录下面的test1.jsp)
3.但是我们有时候会遇到这种情况在jsp里面用<iframe>标签包含另一个jsp要同事访问,但是被包含的那个jsp又不能被浏览器直接访问,所有智能放在web-inf目录下面,但是问题来了,通过servlet跳转只能访问外层jsp,里面被包含的jsp会出现404错误。
图3.1(外面jsp层代码包含一个jsp文件)
图3.2(访问jsp结果被包含的jsp不能被显示出来)
这时就需要我们在web.xml配置一下jsp能够通过服务器端跳转访问,而客户端不能直接访问具体代码如下:
<servlet> <servlet-name>goto</servlet-name> <jsp-file>/WEB-INF/jsp/msgs.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>goto</servlet-name> <url-pattern>/msgs</url-pattern> </servlet-mapping>
然后把iframe 属性src = “msgs”就可以访问了。
虽然这是个很小的问题,这时我学习jsp时遇到的问题,于是把他记录下来,我觉得还是有收获的,如果有什么错误的地方,本人新手,
希望大家指正,感激不尽!
0 0
- 关于JSP不能通过浏览器直接访问,要通过servlet跳转,但一个jsp文件里面用<iframe>标签包含了另一个jsp的访问问题
- 直接访问Jsp和从Servlet跳转到Jsp时的路径问题
- 直接访问jsp不能使用struts标签
- Struts2 无法访问直接通过URL访问jsp文件
- 解决:jsp文件用浏览器单独打开可以显示内容,一加到webroot里面就通过服务器访问就出现错误
- WEB-INF下的JSP是不能通过URL直接访问的
- WEB-INF下的JSP是不能通过URL直接访问的
- WEB-INF下的JSP是不能通过URL直接访问的
- jsp + servlet 通过a 标签下载文件
- jsp通过href跳转到servlet的乱码问题
- 解决springmvc不能直接访问 jsp的问题
- 通过.html访问jsp页面
- 通过struts2的配置文件访问jsp
- struts2下无法用直接通过路径访问.jsp的页面
- url直接访问jsp文件
- 关于jsp页面通过el表达式访问struts2值栈的问题
- jsp页面如何通过href跳转到另一个jsp
- 通过js以超链接的形式访问jsp或访问servlet
- 漂亮的layui 分页展示
- H5游戏和手游APP的差异在哪里?
- 商场--管理员删除功能
- Zipline框架初探(上)
- 事务管理实现原理
- 关于JSP不能通过浏览器直接访问,要通过servlet跳转,但一个jsp文件里面用<iframe>标签包含了另一个jsp的访问问题
- 使用@Controller注解为什么要配置<mvc:annotation-driven />
- spring笔记(一) spring框架概述
- 计算回归曲线的MSE
- 【前端】关于Flow中的联结类型如何使用
- 刻意练习
- 怎么制作一键导航
- Spring中<context:annotation-config/>的作用
- spring boot +mybatis+shiro