-
手工编写Servlet查看全部
-
Tomcat容器等级查看全部
-
Servlet与九大内置对象. Servlet获取九大内置对象的方法都是从重写父类HttpServlet方法中的参数直接或间接获取. JSP的out对象属于JspWriter类、而Servlet的response.getWriter对象是PrintWriter类(类型不匹配)但都可以向浏览器输出. request和response可以从service()方法、doGet()方法、doPost()中传进来的request参数和response参数获取. session对象可以通过方法的request参数的getSession()方法间接获取.查看全部
-
Tomcat装载Servlet的三种情况 1.当Tomcat服务器启动时,当中的Servlet容器便自动装载某种Servlet,实现它只需要在web.xml文件中的<servlet></servlet>之间添加如下代码:<loadon-startup>1</loadon-startup>,其中整数数字越小,优先级越高. 当服务器一启动,就可以在Tomcat服务器目录下work\Catalina\localhost\项目名\org\apache\jsp中查看到已经装载了Servlet. 2.当Tomcat服务器启动之后,用户首次请求访问Servlet的时候,Servlet容器便会加载Servlet..Servlet容器与Servlet是不同的概念,Servlet容器就是容器,存在Tomcat服务器下,Servlet容器管理Context容器,每个Context容器对应一个web工程.Servlet就是一个继承于HttpServlet类并重写其父类一些方法的JAVA类. 3.当Servlet类文件被更新后,Servlet容器会重新装载Servlet. JSP页面首次被访问时,也是需要先编译成一个Servlet.Servlet容器便会加载此Servlet,再进行构造,初始化,服务、销毁的阶段. 在整个生命周期中,Servlet的init()方法只被调用一次. servlet是长期驻留在内存的,也就是当这个servlet实例一旦被加载之后,那么这个servlet对象就会长期保存中服务器的内存当中,当服务器重启或关闭时,servlet也会相应执行destroy()方法销毁. 当还没访问过Servlet并且没有修改web.xml时,Tomcat中work\Catalina\localhost\项目名\org\apache\jsp目录下是空的,并没有加载Servlet.当用户访问过后,Servlet容器便会加载Servlet,把Servlet编译成字节码文件再执行构造方法,初始化方法,然后再解析执行service()方法.此时此目录下就可以看到被加载的Servlet的源文件与字节码文件.查看全部
-
编写Servlet的doPost方法时,需要抛出ServletExcpetion和IOException异常。 会抛出IO异常是因为通过response.getWriter()方法获取了PrintWriter输出流.查看全部
-
在Java EE中Servlet是在服务器端运行以处理客户端请求而做出的响应的程序。 servlet生命周期阶段包括初始化、加载、实例化、服务和销毁。 因为Servlet中的service()方法会根据用户提交方式来选择调用doGet()还是doPost()方法.所以是处理客户端请求而做出响应的程序. 继承于HttpServlet类的类就是一个Servlet.查看全部
-
Servlet生命周期 1.初始化阶段,调用init()方法 2.响应客户请求阶段,调用service()方法.由service()方法根据提交方式选择执行doGet()或者doPost()方法. 3.销毁阶段,调用destroy()方法.(服务器重启) 在调用初始化init()方法之前会调用其构造方法. 当用户发出请求之后,开始检查Servlet实例是否存在,如果不存在,说明这个Servlet是用户第一次请求,当第一次请求,则要创建Servlet实例,首先调用构造方法,再执行它的初始化方法.再调用它的service()方法,由service()方法来决定执行doGet()还是doPost()方法. 如果不是第一次请求,则直接调用Servlet的service()方法. 图中request与response的方向错了,request应该从客户端指向服务器,response应该从服务器指向客户端. JSP与Servlet的区别. servlet是在服务器端执行的java程序,只不过它有专门的一套规则(就是我们平常所说的api);jsp说得简单点就是用另一套简单的规则写的servlet程序,它可以写java代码,还可以写html代码,JavaScript,css等等……,但是到服务器端首先会被转成servlet程序然后就按照servlet的执行顺序执行了。 即JSP最终要编译成Servlet才能执行. Servlet中没有内置对象,原来Jsp中的内置对象都是必须通过HttpServletRequest对象,或由HttpServletResponse对象生成。 jsp能够实现的功能servlet都能实现。查看全部
-
Servlet执行流程 用Get方式举例 以超链接的这种方式提交称为Get请求. 假如用户通过Get方式请求一个Servlet类,例<a href="servlet/HelloServlet">点击我!</a>,其中HelloServlet就是一个Servlet. 当用户点击超链接传递给服务器后,服务器就会在web.xml当中来寻找与之相对应的URL地址.即判断用户在超链接提交过来的地址与在web.xml文件的<servlet-mapping>标签下的<url-pattern>子标签中的地址是否一致.来确定是哪一个Servlet.如果一致的话,则会从其<servlet-name>标签中获取到它对应的Servlet名字. 然后会在<servlet>标签中寻找与刚才找到的Servlet名相同的Servlet名.再匹配他的<servlet-class>来找到Servlet相对应的处理类的位置.然后服务器根据用户提交的请求方式不同来选择调用重写的doGet()或者doPost()方法.查看全部
-
集合是什么查看全部
-
在JAVA类中是不可以直接使用JSP的内置对象的.但像重写HttpServlet抽象类的doGet()和doPost()方法时,因为参数就是HttpServletRequest与HttpServletResponse类型的.所以可以直接通过参数名来使用HttpServletRequest与HttpServletResponse类的方法. JSP内置对象request是HttpServletRequest类的一个实例 JSP内置对象response是HttpServletResponse类的一个实例查看全部
-
编写Servlet步骤 1.写一个类继承于HttpServlet. 2.重写doGet()或者doPost()方法. 3.在web.xml中注册Servlet. 其中HttpServlet是一个抽象类. 重写doGet()方法还是doPost()方法,取决于提交的方式. 超链接是以get的方式提交的. 表单method则可以get/post方式. 注册的时候需要定义两个标签.<Servlet>与<Servlet-mapping> 在<Servlet>中包含两个子标签<servlet-name>与<servlet-class>. <servlet-name>表示为Servlet取一个名字. <servlet-calss>表示你要访问的Servlet它所在的类.要写完整类名,包括包名.(即类名.包名). 在<Servlet-mapping>中包含两个子标签<servlet-name>与<url-pattern> <servlet-name>与在<Servlet>标签下的<servlet-name>子标签两者之间是一一对应的关系.即它们的值都是永远相同的. <url-pattern>表示名为<servlet-name>标签值的Servlet的访问路径.此路径要和在jsp页面中表单action或者超链接所提交的路径一致. 如果要在重写的doGet()或者doPost()方法中输出信息到浏览器,并且可以输出html标签,则需要指定输出文件类型用response.setContentType("text/html;charset=utf-8"); 即 PrintWriter pw=response.getWriter(); response.setContextType(...); pw.println("<hr>");查看全部
-
在init函数中 使用this.getInitParamter("")获得查看全部
-
在web.xml里加入标签 <init-param> <param-name> <param-value>查看全部
-
在servlet中 当前路径时ServletPathDirection/包名/ 请求重定向时,应该response.senRedirect(request.getContextPath()+"/text.jsp"); 服务器内部转发时,/表示项目的根目录,应该request.getRequestDispacher("../test.jsp").forward(request,response);查看全部
-
用a和form 中的路径时,相对路径不加/,这里的/代表服务器的根目录 使用绝对路径可以使用path+/查看全部
举报
0/150
提交
取消