今天继续学习javaweb的servlet,遇到了一个问题,就是按照狂神老师步骤做出来后第一个页面是可以的,这个页面是index,jsp里面的helloworld,但是在域名中加上/hello后就发现报错
jakarta.servlet.ServletException: 实例化Servlet类[com.wu.servlet.HelloServlet]异常
配置是这样的
这里是helloservlet
public class HelloServlet extends HttpServlet {
//由于get或者post只是请求实现的不同的方式,可以相互调用,业务逻辑都一样;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//ServletOutputStream outputStream = resp.getOutputStream();
PrintWriter writer = resp.getWriter(); //响应流
writer.print("Hello,Serlvet");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
这里是web.xml
<!--注册Servlet-->
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.kuang.servlet.HelloServlet</servlet-class>
</servlet>
<!--Servlet的请求路径-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
查了下信息发下是狂神老师用的tomcat 9,可能也与idea版本有关
我这里的tomcat是10.0,所依赖的不是javax.server,而是jakarta.servlet
可以用下面这两个
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency
我删除了之前用的javax.servlet-api4.0.1
做完上面的配置之后,又出现了其他的错误
当前响应已经调用了方法getOutputStream()
干饭,一会回来看