首页 > 编程知识 正文

servlet和jsp的联系,jsp提交数据到servlet

时间:2023-05-05 09:20:50 阅读:35914 作者:1893

门诊项目maven的部署版本必须一致

必须标记资源目录

Maven正在由clean生成

将Maven项目转换为Web项目的servlet是什么?

在web服务器上运行的Java程序

JSPJava服务器pages

服务器上运行的页面

要支持servlet和JSP,请执行pomdependencygroupidjavax.servlet/groupidartifactidjavax.servlet-API/artifactidversion3.0. 0 必须部署版本dependencydependencygroupidjavax.servlet.JSP/groupidartifactidjsp-API/artifactidversion 2.2/version

添加servlet软件包

(mvc: M模块: bean服务道,

v模块:可见的页面JSP、

c模块: servlet控制层)

v负责收集页面上用户输入的数据,并显示程序处理的结果。

c接收页面请求和页面数据,调用m层处理,并将结果反馈给v

m被调用到c,负责具体处理业务数据。

在地址栏中输入地址访问,启动的请求是GET请求,对应于servlet的doGet方法

post doPost Post请求不能从地址栏发出,只能以表单的post方式请求。

post方式与servlet中的doPost方法相对应,doGet和doPost在处理业务上是相同的,所以一般感谢一个方法、另一个方法的调用。

在IDEA上提高Tomcat的配置性能某些java重新部署已比重新启动服务器更有效

更新资源和类的html并更改类后,不需要重新启动服务

IllegalArgumentException路径不是异常的,并且页面出现404个问题

privateloggerlogger=log manager.getlogger (this.getclass (); 使用Tomcat端口的情况1 :

IDEA闪回IDEA启动Tomacat后闪回。 此时,进程中未显示,但端口一直被占用

在这种情况下,必须使用-ano|find “80”找到端口号并关闭端口

情况2 :

可能是手动启动了Tomcat,但没有关闭shutup.bat。 我们需要找到任性流沙下的shutdown.bat

webapps下的根目录是默认启动后打开的路径,我们可以移动自己的项目。 默认情况下打开了我们的项目

conf /server.xml

将8080更改为80后,可以直接通过locahost访问

连接器端口=' 80 ' protocol=' http/1.1 '连接时间out=' 20000 ' redirect port=' 8443 '/postman测试获取请求和开机自检请求

移动到参数后的参数后初始化servlet是什么时候初始化的? 初始化参数?

servlet初始化时间:

两个时机:第一次访问时初始化。 (来自地址栏或表单)

第二个Tomcat在启动时初始化。

servlet就是一个例子。 初始化servlet并将其存储在服务器上

服务器启动初始化的优点:节省用户访问时间。 不知道等,是servlet的初始化时间。 初始化时可以传递一些参数。

servlet生命周期:

创建servlet对象; 执行init方法3 .业务方法servic; 4.destory销毁(在服务器停止之前自动运行); init的初始化根据实际的业务,例如有时进行文件系统或数据库系统的初始化

销毁时,根据init进行适当的资源回收或一些释放性的工作、还原性的工作。

注释放置load

-on-startup="0/整数"零和正数时 数字越小 越早创建负数时,浏览器调用才会进行servle 初始化 转发重定向

转发:地址栏不变

重定向:地址栏变化

1.StoreServlet?method=sale&number=1这时向服务器请求的地址

2.StoreServlet处理完成后,相应给浏览器,地址栏依然是上面的。

3.StoreServlet转发到success.jsp后,浏览器显示的是success.jsp里面的内容,地址栏依然是上面的,没有变化,这就是转发。转发过程中request始终是有效的,可以传递数据。无论转发多少次,都算做一次请求。始终是同一个request 不会丢失数据。 转发是一次请求 同一个request

一次请求对应一个request,多个请求,对应多个request。

当地址栏随着页面内容变化时是重定向。重定向是第一个请求到服务器后,Servlet向浏览器发起一个重定向的响应,浏览器收到响应后自动在发起一次请求,这里共有两次请求,两次的地址是不一样的。既然是两次请求,就是两个request,Servlet要想向页面传递数据用request行不通。

登录成功后重定向到主页面

如果是转发的化,地址栏没有变化,客户就会在浏览器上刷新,会发起多次相同的请求,给服务器带来压力。

三大容器

request,session,application作用范围?

一次请求,一个会话,一个应用程序 范围依次变大

request 前后台传值

session 登录的校验 登录后重定向到主页面 一个会话的作用域,更换浏览器后 则失效

application 给应用程序配置一个参数 并读出来

9.jsp

注释,Java代码块,Java表达式,EL表达式

JSP

JSP 式Java代码+HTML的结合体,理论上可以完成所有的操作,这种做法是JSP开发模式一。(缺点:Java代码和HTML代码混合,较乱,也不能大规模的模块复用)

JSP之前程序员用Servlet完成开发,Servlet特点是写Java代码,它也可以写HTML代码,如果不用JSP,纯用Servlet将是非常困难的。

MVC模式,最终。

JSP最终会生成一个Java文件,并自动编译成一个类文件。

xxx.jsp ->xxx_jsp.java->xxx_Servlet.class在Tomcat的work目录下

用户目录下/Idea版本下/systeam/tomcat下,项目发布位置

注释,Java代码块,Java表达式,EL表达式

EL:表达式语言,是一个标签(HTML+Java代码)

((College)request.getAttribute(“college”)).getName()

${college.name}代替上面的代码

如果request中没有college,则取到的是空的,就要取session中取,如果session也是空的,则取application中取,这些都是要判断的

但是EL表达式会自动从request中取,如果没有则自动取session中,同理取application中,这是EL的优点。

使用EL首先在JSP中导入它的标签。

JSP的指令标签:page,taglib,include,也叫静态指令标签。

page中可以指定编码方式(解决页面乱码问题。 text/html;charset=“utf-8”),可以指定错误页面

EL范围写法

指定范围,好处是提高EL查找的效率,从指定的容器中获取数据,而不是每次从最小的找起。page->request->session->application

pageScore

三大指令

page taglib include

include(静态包含):一个JSP包含另一个JSP,最终合二为一,它们的代码是合在一起的,一个JSP中定义过的变量,在另一个JSP中是无法重复定义的,当被包含的JSP的代码有变动,包含JSP也会有变动

动态包含:也叫JSP动作标签(有多个动作标签)

一个JSP的页面包含另一个JSP的页面 (相当于画中画,只是简单把一个页面的画面包含在另一个页面的画布中),两个JSP 互不影响。

静态包含和动态包含的区别 错误页面error

500 一般是服务器问题 可能是空指针报错

自定义一个错误页面,来专门处理500错误,这个页面被那个JSP引用,那个JSP中发生错误后就会显示这个错误页面。

这个错误页面中的page指令中要明确指定当前JSP是用来处理错误的页面。

<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>

错误页面中有一个叫exception,可以通过它来获取异常信息。

普通页面是没有这个对象的。当定义一个JSP,并且指定了isErrorPage=true时,这个JSP中才会有exception对象。

通过web.xml配置公告的错误页面,主要是通过HTTP协议的状态码来处理的,优点是不用每个JSP设置错误页面。注意:开发时把该配置屏蔽,因为掩盖了解决问题的错误信息,在发布产品时必须打开。

九大内置对象

JSP已经定义好得对象,不需要在定义,直接使用

名称类型pageObject当前JSP的实例对象pageContextPageContext当前页面容器*requestContextHttpServletContext获取内容*sessionContextHttpContext会话内容applicationServletContext应用程序内容exceptionException只有错误页面有configServletConfig用来获取配置信息outJspWriter输出流,JSP中的HTML内容通过out输出到页面responseHttpServletResponse响应C标签

Layui,Easyui,Bootstram用了前端框架就用了AJAX,AJAX配合框架完成所有的页面的功能。

在框架之前纯JSP用的都是C标签。

过滤器

过滤器,过滤请求,它的应用场景有许多,原理只有一个,当请求经过过滤器时,对请求做各种处理(根据业务需求)

两大场景:1.对编码的过滤,防止乱码。

​ 2.对登录和权限的过滤。当请求过来时,发现没有登录,则重定向到登 录页面,或者发现请求的权限不是当前用户的权限,则提示无法访问。

如果没有编码过滤器,则需要在每个Servlet的get或post方法中写编码的处理。
过滤器是实现Filter的接口。在接口中可以允许被过滤的请求通过,或拒绝。

//注解方式配置过滤器@WebFilter(filterName = "Filter1Coding" , urlPatterns = "/*" , initParams = {@WebInitParam(name="coder",value = "utf-8")}

定义一个过滤器,名称是Filter1Coding,过滤的范围为是所有的请求,配置一个参数coder

登录过滤器:

LogingServlet 处理登录,登录成功后给session放一个当前用户对象,session是会话对象,浏览器链接到服务器后,在服务器上开辟的一个内存空间,这个空间通过session对象来访问。没有登录成功前,session中没有用户对象,登录成功后,给session中放入昂前用户对象,后面每次请求都会先判断session中有没有用户,没有则去登录。

eg:编码过滤器

监听器

监听项目启动,监听客户链接,监听容器中数据的变化。

Strus框架 SpringMVC框架都用到了监听。

我们学习监听主要是学习客户链接和断开的监听。可以作为统计在线人数的依据。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。