javaweb作业二

作业:
1、书写servlet的类架构及重要方法。
(ServletConfig,Servlet)<---GenericServlet(getInitParameter(String str);init();service();)<-HttpServlet(doXXXX();).
2、如何注册Servlet。要求记忆。
<?xml version="1.0" encoding="utf-8"?>
<web-app>
<servlet>
<servlet-name>ShowPersonServlet</servlet-name>
<servlet-class>com.lwz.servlet.ShowPersonServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ShowPersonServlet</servlet-name>
<url-pattern>/show</url-pattern>
</servlet-mapping>
</web-app>
3、描述servlet映射的几种方式。
精确映射: /test 只能以/test路径访问servlet
扩展映射: *.do 以.do结尾的请求,都能访问servlet
路径映射: /abc/* 凡是以/abc/目录开始的请求,都能访问servlet

4、如何解决输出中文乱码问题,如何解决表单数据的乱码问题?
表单method="post"
servlet中请求和响应乱码的解决:
//设置请求信息编码集,只对POST有效
req.setCharacterEncoding("utf-8");
//设置响应信息的MIME类型和编码集
resp.setContentType("text/html;charset=utf-8");

5、<load-on-startup>标签是什么含义
在注册servlet时,加入了<load-on-startup>标签,并且该标签的值为0或正数,那么容器启动时
会实例化servlet。没有或值为负数,表示第一次访问servlet时,实例化servlet。

6、写出servlet生命周期。
1、启动tomcat,读取conf/server.xml文件,以确定启动端口,和web应用程序存放的路径。
2、读取webapps目录中,所有WEB应用程序中的web.xml文件,并完成该文件的解析。如果web.xml文件书写错误,
那么解析失败,从而启动时会抛出异常。注意,任何一个web应用程序的web.xml书写错误都会导致启动异常。
3、加载并实例化servlet。如果在注册servlet时,加入了<load-on-startup>标签,并且该标签的值为0或正数,那么容器启动时
会实例化servlet。没有或值为负数,表示第一次访问servlet时,实例化servlet。
4、调用init()方法,完成初始化操作。
5、当请求到达时,调用service()方法,完成业务操作。
6、销毁阶段,调用destroy()方法,完成资源的清理。
在整个生命周期中,1,2,3,4,6都只执行一次,只有5才是每次请求都会执行,而servlet也是单实例多线程的类。

7、ServletConfig和ServletContext的作用。
SevletConfig对象为Servlet提供初始化参数
ServletContext对象属于整个Web应用程序
//得到servlet配置接口对象
ServletConfig cfg = this.getServletConfig();
//得到servlet的初始化参数
String s = cfg.getInitParameter("123");
//得到全局应用上下文对象
ServletContext context = this.getServletContext();
String contextValue = context.getInitParameter("name");

8、如何定义servlet初始化参数和全局参数。
servlet的初始化参数,在注册servlet时,可以在<servlet>标签中加入init-param标签,完成初始化参数的配置。
<init-param>
<param-name>123</param-name>初始化参数名称
<param-value>456</param-value>初始化参数的值
</init-param>
可以通过配置接口对象ServletConfig中,提供的getInitParameter(),根据初始化参数名称,得到对应的值。初始化参数只能在
当前注册的servlet中使用,不能再其他地方使用。

全局初始化参数:可以在web-app根元素中,通过context-param标签定义全局初始化参数。
<context-param>
<param-name>name</param-name>
<param-value>007</param-value>
</context-param>

9、如何得到web应用中文件的真实路径。
//得到全局应用上下文对象
ServletContext context = this.getServletContext();
String contextValue = context.getInitParameter("name");
context.getResource("/image/1.jpg");//根据相对路径得到物理路径

10、如何绑定对象在全局共享。
可以在应用上下文对象ServletContext中,调用setAttribute()方法,绑定对象在全局共享。无论是哪个用户,哪个servlet
都能访问。通过getAttribute("obj")方法,得到共享对象的值。

11、编码题:
表结构:id userName sex age
完成一个servlet,访问该servlet并查询数据库。输出一个表中所有的记录内容。书写一个网页,建立表单,当用户在表单中输入姓名,可以按姓名模糊查询数据库的内容
要求能支持中文。

posted @ 2017-10-23 00:05  沉迷学习,日渐消瘦  阅读(251)  评论(0编辑  收藏  举报