代码拉取完成,页面将自动刷新
1.servlet概述
·servlet生命周期:先由init函数初始化servlet,在通过请求页面的具体请求来调用doget/dopost方法,需要销毁程序时调用destroy方法。init方法和destroy方法都只会调用一次,但是doget/dopost方法可以多次调用。一般会将初始化资源代码和需要销毁代码放入init和destroy方法中,这样能提高效率。
·doget/dopost方法概述:get是向服务器请求数据,post是向服务器传送数据;get对传送的数据有大小要求,post则能传送很大的数据;get的传送的数据会在地址栏显示出来,post则不会。
·转发和重定向概述:转发(forward)是服务器请求资源,给一个服务其识别不了的url所以他的地址栏不会变,但是重定向(redirect)是给一个状态码,地址栏会是一个新的url;;;forward能够共享数据,redirect则不能。。forward要比redirect高。
forward的url不会变
rediect会变成新的资源路劲
·自动刷新:Response.setHeader("Refresh","5;URL=http://localhost:8080/servlet/example.htm");单位为s
·jsp和servlet的关系:
jsp可以说是一个简易的servlet,两个可以做很多同样的事但是侧重点不一样,jsp一般做视图(view),而servlet一般做控制器(controller)
·request.getAttribute和request.getParameter的区别
request.getAttribute是servlet容器里面的值
request.getParamter是获取前台表单里面的值
·jsp的四种作用域
page代表一个与页面相关的对象和属性
request代表与web客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个web组件
session代表与某个用户与服务器建立的一次对话相关的对象和属性。用户自己的数据放在自己的session中
application代表与整个web应用程序相关的对象和属性,它实质跨越整个web应用程序,包括多个页面,请求和会话的全局作用域
·servlet中string转成int类型
Integer.parseInt/Long.parseLong(视目标长度而定)
·乱码问题
request.setCharacterEncoding//客户端请求和数据库传值
response.setCharaterEncoding//服务器相应浏览器
response.setContentType//使客户端浏览器,区分不同种类的数据,并且根据不同的mime调用浏览器不同的程序嵌入代码来处理相应的数据
·上传下载问题
使用apache的commons-fileload来实现,servlet3就不用,它自带上传文件的jar包,前端页面需要将上传文件的栏的type变成file,另外表带上方还需要有enctype="multipart/form-data"来解决编码问题,再将地址写入req.getServletContext().getRealPath()来获取服务器。
文件下载直接写上超链接就行了
·session,request,response
request是保存一次请求的数据,response保留响应信息,session保留一次会话的数据
request是取快递的人,response是送快递的人,session是菜鸟驿站
session中一般存放身份信息,登陆状态等一些和用户相关的信息session关闭浏览器就会消失
·MVC
model view controller 一种设计模式
对于servlet来说model是数据库操作和JavaBean等(dao,service,entity),view是jsp前端代码,controller是servlet本层了,管理操作数据
·filter
拦截器/过滤器,实现filter接口,然后再在web.xml中配置即可使用。可以验证用户的操作权限。
·listener
监听三个对象(session,request,response)的创建,使用和销毁
·jsp内置对象
request,response,session
application(从servlet中获取上下文)
out(向输出流写入内容的对象page)
exception(jsp运行时的异常类)
page(类似与java的this对象)
·include和jsp:include
include指令用于通知jsp引擎翻译当前jsp页面时将其他文件的内容合并当前的servlet源文件,在这种源文件级别进行引入的方式称为静态引入。
jsp:include时用于把另外一个资源输出的内容插入进当前jsp页面的输出内容之中,动态引入。
·Servlet3.0用哪个注解标注Servlet
webservlet
·PreparedStatement和Statement有什么区别
preparedStatement时statement的子接口,但是paeparestatement能够防止sql注入,提高安全性
statement: String sql="insert into XX values"+"("+xx.getxx()+","+xx....."
PrepareStatement pertmt=conn.prepareStatement(sql);
prepareStatement: String sql="insert into xx values(?,?,?,?)"
PrepareStatement pertmt=connection.preparestatement(sql);
pertmt.setxxx(1,xx.get...)
很明显,preparestatement比statement要方便简洁的多
·如何在servlet中实现值传递
this.getServletContext.setAttribute("key","value");
this.getServletContext.getAttribute("key");
//////this可加可不加
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。