Servlet是一个标准的纯Java类,只不过该类是HttpServlet类的一个子类,因此Servlet(即Java类)的对象可以使用或重写HttpServlet类中的所有方法
一.创建Servlet
步骤如下:New---Servlet---取一个Servlet类名---next---一般将Servlet/JspMapping URL设置为:/Servlet类名(其他地方不需要修改)---finish
注意:1.一般将所有写好的Servlet类以包的形式保存,并且将这个包存放在Web路径下的src目录下;从而当某个Servlet类被编译时,就会自动在"Web工程名/web-inf/classes"目录下产生一个与其对应的.class文件,并且该.classes文件也是以包的形式存放,包名与存放Servlet类的包名同名
2.web.xml文件中的两个重要标记
3.编译后的Servlet只被装载一次,因此当源程序重新编译后,需要重启Tomcat服务器
4.Servlet类的修饰符必须为public
5.由于Servlet中写的全部是纯Java代码,因此要在Servlet中调用Html或Jsp或JavaScript代码时,必须将他们都写在out.println(......)中
6.在Servlet类中获取out对象的方法:PrintWriter out=response.getWriter();
7.在Servlet中调用对象session时,要首先声明session,即用session所属的类HttpSession来对它进行定义,即:
HttpSession session=request.getSession();
二.Servlet对象常用的方法
1.public void init(ServletConfig config) throws ServletException
服务器初始化Servlet
一旦某个Servlet被初始化后,它将被保存在内存中;因此该方法只需要被调用一次以后,Servlet就可以被多次调用
2.public void service(HttpServletRequest request,HttpServletResponse response) throws
ServletException,IOException
每当用户需要加载某个Servlet页面时,该方法就会被调用执行
request:用来封装用户的请求信息
response:用来响应用户的请求
在该方法中要实现的功能也可以在doGet()或doPost()中实现
3.public destroy()
该方法用于消灭某个Servlet对象
4.protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
与
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
这两个方法的功能与service方法的功能相同,一般只要把具体逻辑放在doGet和doPost方法的任一个中,然后在另一个方法里
调用这个方法即可,也就是说这两个方法中的逻辑功能都是相同的
三.Servlet,Jsp,Html页面之间的跳转
1.Servlet页面---Jsp页面或Html页面
A.要设置从Servlet页面跳转到哪个Jsp页面或Html页面,必须在Servlet类的doGet或doPost方法中加入以下语句:
getServletConfig().getServletContext().getRequestDispatcher("/Html或Jsp页面文件中").forward(HttpServletRequest request,HttpServletResponse response);
也可以通过JavaScript中的window.location.href="./Html或Jsp页面地址"实现
B.在Html页面文件中不能获取Servlet或Jsp页面文件中的某个表单控件或对象的值;但是,Jsp页面文件或Servlet页面文件中可以互相获取
2.Jsp页面或Html页面---Servlet页面
此时Jsp文件或Html文件的表单中的action应为Servlet页面的加载地址,即web.xml文件中的
格式:action="地址名"或"./地址名"