1.使用MyEclipse创建servlet文件时,web.xml里并没有像老师那样自动配置servlet,百度得知:在Tomcat7.0下新建了Servlet文件之后,并不会自动配置web.xml文档,而是会在Servlet文件类开头插入一个@WebServlet注解,当需要访问Servlet时可通过与Spring注解一样的访问方式去访问
我们的web.xml如图所示
当我想要提前servlet的创建时机时,需要在标签中添加,然而我并没有标签
<servlet>
<servlet-name>BServlet</servlet-name>
<servlet-class>com.yidongxueyuan.web.servlet.BServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
此时的做法:直接在web.xml中手动添加。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>javaEE-04</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>BServlet</servlet-name>
<servlet-class>com.yd.web.servlet.BServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
</web-app>
2.在ServletContext对象作为一个域对象使用这节中,存属性、取值、移除属性等,以及获得文件或者是目录的真实位置时,我发现我跟老师创建出的servlet不太一样。具体如下:(截取doPost一段)
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//获得对象L:
ServletContext context = this.getServletContext();
//存值:
context.setAttribute("username", "panzhihua");
context.setAttribute("age", "123");
//移除:
context.removeAttribute("username");
}
我的:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
//获得对象:
ServletContext context = this.getServletContext();
//存值:
context.setAttribute("username", "panzhihua");
context.setAttribute("age", "23");
//移除:
context.removeAttribute("username");
}
会发现以下不同:
解决办法:
把doPost里doGet删除,在doGet方法里调用一下doPost
得到:
doget下面这样
dopost下面删了
访问时路径为:http://localhost:8080/javaEE-04/EServlet
结果没有异常,成功。