javaEE-04出现的错误及解决方式

本文探讨了在MyEclipse中创建Servlet时的配置差异,特别是在Tomcat7.0环境下,如何手动在web.xml中配置Servlet,以及在Servlet中使用ServletContext进行属性操作的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
结果没有异常,成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值