本篇文章给大家谈谈jsp文件放在哪个目录下,以及jsp类文件存放位置对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
Jsp和Servlet有什么区别
Servlet的基本概念
首先先来谈谈servlet这个东西,这可以说是JavaEE编程的最基本概念之一了。我们都知道,一个Web服务可以概括成下面一个过程:
用户向一个地址发送一个请求服务器接收请求并处理请求服务器向用户返回响应我们可以想到,Servlet这个东西自然是上面过程的抽象,也就是说Servlet应该有一个处理用户请求的方法,这个方法的参数应该是用户发送过来的请求,方法的返回值应该是要传递给用户的响应。实际上Servlet的处理方法和我说的已经非常相似了,只不过响应也是作为一个方法的参数而不是返回值。
为了针对get、post等多种http请求形式,Servlet自然也有多个对应的doGet、doPost等方法,如果想要同时处理以上所有方法,还可以使用service函数来处理用户请求。使用Servlet这一工具,我们就可以随心所欲的定义资源地址,接受并处理用户的请求,然后在返回给用户。
Servlet的缺陷Servlet这个概念的确很美好,但是实际使用的时候,大家就可以感觉到问题了。它仅仅定义了一个简单的方法来处理用户请求。这样做虽然非常易于理解,但是在面对比较复杂的情况,我们用起来就有点力不从心了。
例如最常见的返回HTML页面需求,用Servlet做的话就非常麻烦,我们只能一行行的将HTML代码填写到输出流中。这样做的话效率极低,可是我们也没有别的办法。
JavaServerPages正因为此,JSP技术就应运而生了。JSP写起来和HTML差不多,但是可以内嵌Java代码对HTML进行更多控制,实现更为强大的效果。实际上现在前端流行的JSX等概念,思想也是类似的,利用代码来控制网页。
JSP技术虽然巧妙,但是和Servlet却是密不可分的,因为实际上JSP会由Servlet引擎编译成Servlet,然后在执行。唯一不同的就是我们不用在Servlet引擎中手动编写一行一行的HTML代码。当然有些朋友也不要一听到编译就下意识的认为JSP比Servlet要慢,因为这个编译过程只发生一次,一旦JSP编译为Servlet代码,那么之后就不会影响性能。
其他模板引擎和前后端分离JSP作为JavaEE技术的原生模板引擎,使用十分广泛。但是其实JSP也有很多不足,内嵌的JAVA代码和页面结合的不是很好,写起来比较生硬。因此后面由涌现了一批模板引擎,如velocity、Thymeleaf等等,它们的性能比JSP更高,用起来也更加方便。
当然其实现在随着前端技术的发展,很多应用都采用了前后端分离的方式,后端仅仅负责发出数据,如何呈现数据美化页面都交给前端来做。这样一来前后端的职责分工明确,更加符合现代软件工程的定义。
jsp编译以后是什么文件
jsp页面经过编译后会变成一个java文件,最后会变成一个class文件在jvm中运行。
浏览器首先要请求一个以.jsp扩展名结尾的页面,发起JSP请求,然后,Web服务器读取这个请求,使用JSP编译器把JSP页面转化成一个Servlet类。需要注意的是,只有当第一次请求页面或者是JSP文件发生改变的时候JSP文件才会被编译,然后服务器调用servlet类,处理浏览器的请求。一旦请求执行结束,servlet会把响应发送给客户端。
web INF文件夹下有哪些资源
在JavaWeb应用程序中,通常在WEB-INF文件夹下存放一些敏感或私有的资源,这些资源不能直接被公开访问。以下是一些常见的资源文件和文件夹:
1.web.xml:Web应用程序的部署描述符,定义了应用程序的配置和行为。
2.classes文件夹:用于存放编译后的Java类文件。
3.lib文件夹:用于存放应用程序所需的库文件(JAR文件)。
4.jsp文件夹:用于存放JSP文件,即Java服务器页面。
5.servlet文件夹:用于存放Servlet类文件。
6.tags文件夹:用于存放自定义标签文件。
7.tld文件夹:用于存放标签库描述符文件。
8.jdbc文件夹:用于存放JDBC驱动程序文件。
9.security文件夹:用于存放安全配置文件。
10.properties文件:用于存放应用程序的属性文件。
11.wsdl文件:用于存放Web服务描述语言文件。
12.css、js和image文件夹:用于存放样式表、JavaScript文件和图像文件。
这些资源文件和文件夹的具体命名和组织方式可能会因应用程序的具体需求而有所不同,但一般来说,WEB-INF文件夹下的资源都是供应用程序内部使用的,不直接对外提供访问。
WEB-INF目录下的jsp页面如何访问
首先,对于外部访问来说,web-inf下的文件都是不可见的(即不能通过url获得web-info下的任何文件),所以,直接访问jsp是不可能的。这要从web-info文件夹的作用说起:WEB-INF的存在以及其下的lib和classes目录的作用都是jsp规定的,主要是系统运行的配置信息和环境,用来存储服务端配置文件信息和在服务端运行的类文件,它下面的东西不允许客户端直接访问的,这是jsp环境的规定。
而我们通常是使用view层框架(如struts)来提供jsp服务,此时,我们可以将jsp文件放到web-info下避免客户直接访问到页面,同时使用struts来进行jsp文件提取,并将编译好的结果发送到客户端。
怎么样让servlet访问web-inf下的网页或jsp文件
web-inf目录只能在sevlet(或者spring的control,struts的action,本质都是sevlet)中访问。也就是只能通过java后台访问,这里web-inf下的内容是不对外开放的/安全的,不能通过url直接访问。已避免非法人员通过url自己操作一些比较私密的文件信息。Servlet访问WEB-INF目录下的info.jsp文件的代码如下:
1、web.xml中的servlet可以这样配置:
2、servlet中实现方法:RequestDispatcherdispatcher=request.getRequestDispatcher("/WEB-INF/info.jsp");dispatcher.forward(request,response);from:网页链接
OK,本文到此结束,希望对大家有所帮助。