首页 课程 师资 教程 报名

JavaWeb总结内涵超全面的javaweb视频教程

  • 2020-02-10 10:18:32
  • 1887次 动力节点


JavaWeb总结内涵超全面的javaweb视频教程


  Servlet总结:


  在JavaWeb程序中,Servlet主要负责接收用户请求HttpServletRequest,在doGet(),doPost()中做相应的处理,并将回应HttpServletResponse反馈给用户。Servlet可以设置初始化参数,供Servlet内部使用。一个Servlet类只会有一个实例,在它初始化时调用init()方法,销毁时调用destroy()方法。Servlet需要在web.xml中配置(MyEclipse中创建Servlet会自动配置),一个Servlet可以设置多个URL访问。Servlet不是线程安全,因此要谨慎使用类变量。


  阐述Servlet和CGI的区别?


  CGI的不足之处:


  需要为每个请求启动一个操作CGI程序的系统进程。如果请求频繁,这将会带来很大的开销。


  需要为每个请求加载和运行一个CGI程序,这将带来很大的开销


  需要重复编写处理网络协议的代码以及编码,这些工作都是非常耗时的。


  Servlet的优点:


  只需要启动一个操作系统进程以及加载一个JVM,大大降低了系统的开销


  如果多个请求需要做同样处理的时候,这时候只需要加载一个类,这也大大降低了开销


  所有动态加载的类可以实现对网络协议以及请求解码的共享,大大降低了工作量。


  Servlet能直接和Web服务器交互,而普通的CGI程序不能。Servlet还能在各个程序之间共享数据,使数据库连接池之类的功能很容易实现。


  补充:SunMicrosystems公司在1996年发布Servlet技术就是为了和CGI进行竞争,Servlet是一个特殊的Java程序,一个基于Java的Web应用通常包含一个或多个Servlet类。Servlet不能够自行创建并执行,它是在Servlet容器中运行的,容器将用户的请求传递给Servlet程序,并将Servlet的响应回传给用户。通常一个Servlet会关联一个或多个JSP页面。以前CGI经常因为性能开销上的问题被诟病,然而FastCGI早就已经解决了CGI效率上的问题,所以面试的时候大可不必信口开河的诟病CGI,事实上有很多你熟悉的网站都使用了CGI技术。


  Servlet接口中有哪些方法及Servlet生命周期探秘


  Servlet接口定义了5个方法,其中前三个方法与Servlet生命周期相关:


  voidinit(ServletConfigconfig)throwsServletException


  voidservice(ServletRequestreq,ServletResponseresp)throwsServletException,java.io.IOException


  voiddestory()


  java.lang.StringgetServletInfo()


  ServletConfiggetServletConfig()


  生命周期:Web容器加载Servlet并将其实例化后,Servlet生命周期开始,容器运行其init()方法进行Servlet的初始化;请求到达时调用Servlet的service()方法,service()方法会根据需要调用与请求对应的doGet或doPost等方法;当服务器关闭或项目被卸载时服务器会将Servlet实例销毁,此时会调用Servlet的destroy()方法。init方法和destory方法只会执行一次,service方法客户端每次请求Servlet都会执行。Servlet中有时会用到一些需要初始化与销毁的资源,因此可以把初始化资源的代码放入init方法中,销毁资源的代码放入destroy方法中,这样就不需要每次处理客户端的请求都要初始化与销毁资源。


  get和post请求的区别?


  1、get请求用来从服务器上获得资源,而post是用来向服务器提交数据;


  2、get将表单中数据按照name=value的形式,添加到action所指向的URL后面,并且两者使用"?"连接,而各个变量之间使用"&"连接;post是将表单中的数据放在HTTP协议的请求头或消息体中,传递到action所指向URL;


  3、get传输的数据要受到URL长度限制(1024字节即256个字符);而post可以传输大量的数据,上传文件通常要使用post方式;


  4、使用get时参数会显示在地址栏上,如果这些数据不是敏感数据,那么可以使用get;对于敏感数据还是应用使用post;


  5、get使用MIME类型application/x-www-form-urlencoded的URL编码(也叫百分号编码)文本的格式传递参数,保证被传送的参数由遵循规范的文本组成,例如一个空格的编码是"%20"。


  补充:GET方式提交表单的典型应用是搜索引擎。GET方式就是被设计为查询用的。


  什么情况下调用doGet()和doPost()?


  Form标签里的method的属性为get时调用doGet(),为post时调用doPost()。


  转发(Forward)和重定向(Redirect)的区别?


  转发是服务器行为,重定向是客户端行为。


  转发(Forword)


  通过RequestDispatcher对象的forward(HttpServletRequestrequest,HttpServletResponseresponse)方法实现的。RequestDispatcher可以通过HttpServletRequest的getRequestDispatcher()方法获得。例如下面的代码就是跳转到login_success.jsp页面。


  request.getRequestDispatcher("login_success.jsp").forward(request,response);


  重定向(Redirect)是利用服务器返回的状态吗来实现的。客户端浏览器请求服务器的时候,服务器会返回一个状态码。服务器通过HttpServletRequestResponse的setStatus(intstatus)方法设置状态码。如果服务器返回301或者302,则浏览器会到新的网址重新请求该资源。


  从地址栏显示来说


  forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.


  redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.


  从数据共享来说


  forward:转发页面和转发到的页面可以共享request里面的数据.


  redirect:不能共享数据.


  从运用地方来说


  forward:一般用于用户登陆的时候,根据角色转发到相应的模块.


  redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等


  从效率来说


  forward:高.


  redirect:低.


  自动刷新(Refresh)


  自动刷新不仅可以实现一段时间之后自动跳转到另一个页面,还可以实现一段时间之后自动刷新本页面。Servlet中通过HttpServletResponse对象设置Header属性实现自动刷新例如:


  Response.setHeader("Refresh","1000;URL=http://localhost:8080/servlet/example.htm");


  其中1000为时间,单位为毫秒。URL指定就是要跳转的页面(如果设置自己的路径,就会实现没过一秒自动刷新本页面一次)


  Servlet与线程安全


  Servlet不是线程安全的,多线程并发的读写会导致数据不同步的问题。解决的办法是尽量不要定义name属性,而是要把name变量分别定义在doGet()和doPost()方法内。虽然使用synchronized(name){}语句块可以解决问题,但是会造成线程的等待,不是很科学的办法。


  注意:多线程的并发的读写Servlet类属性会导致数据不同步。但是如果只是并发地读取属性而不写入,则不存在数据不同步的问题。因此Servlet里的只读属性最好定义为final类型的。


  动力节点Javaweb开发视频


  Tomcat9配置和使用:http://www.bjpowernode.com/v76/


  JavaWeb开发基础:http://www.bjpowernode.com/v77/


  Servlet编程:http://www.bjpowernode.com/v33/


  JSP:http://www.bjpowernode.com/v34/


  Session/Cookie:http://www.bjpowernode.com/v74/


  Filter:http://www.bjpowernode.com/v80/


JavaWeb总结内涵超全面的javaweb视频教程


       以上就是动力节点Java培训机构小编介绍的“JavaWeb总结内涵超全面的javaweb视频教程”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。


  相关内容


  Java web目前流行的框架总结


  五大 JAVA Web 框架的优缺点对比


  Javaweb开发学习路线及Java三大框架


  JavaWEB基础面试题


  Javaweb学习路线(自学规划)


选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交