2 p011235 p011235 于 2016.04.24 15:17 提问

jsp跳转servlet找不到页面

servlet没有.class文件,我也不知道怎么回事,说要配置web.xml文件的就不要来了
,因为是servlet3.0不需要配置,唉,直接上图吧,求大神指教
第一张是错误页面
图片说明
第二张是跳转页面
图片说明
接下来是servlet代码,这段代码没有生成.class文件

package myservlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloServlet
 */
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().println("My Servlet");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().print("My Servlet");
    }

} 

这张是Build Path的路径
图片说明
这张是工程目录下的classes
图片说明
求大神说说这啥原因

7个回答

wagnteng
wagnteng   2016.04.24 23:32
已采纳

直接HelloServlet不用前面的包名

w172087242
w172087242   Ds   Rxr 2016.04.24 18:29

你hello2是工程名吗?如果是,那么你的myservlet又是什么,因为你的servlet注解url是HelloServlet;
所以你的访问要么是http://localhost:8080/hello2/HelloServlet,要么是http://localhost:8080/myservlet/HelloServlet;
你可以试试。

Neoest
Neoest 这样呀!谢谢指教。
一年多之前 回复
w172087242
w172087242 回复Neoest: 超链接表示的是get请求,form表单只是包装了请求而已,实质都是发起的http请求,没什么区别,唯一区别form有表单,form可以提供post的请求而已
一年多之前 回复
Neoest
Neoest 你要访问servlet不能用超链接的,没有请求,request不生效的吧!你要测试这个servlet可以弄一个form表单,一个submit来提交,form表单一个action属性的值写成这个servlet的路径,就可以了。这样直接超链接是直接联通了。
一年多之前 回复
w172087242
w172087242 回复Angry_Ants: 访问跟包名不会有关系的,只会跟注解有关系,这样要么是容器没有扫描到你的servlet,要么是你的servlet没有部署进去
一年多之前 回复
p011235
p011235 然而并没有用
一年多之前 回复
p011235
p011235 hello2是工程名,myservlet是包名
一年多之前 回复
Neoest
Neoest   2016.04.24 15:43

看了半天我是没看懂,目测你这是响应servlet吧!你要让他显示东西得在里面拼接页面的,而不是单纯的一句话,至于在项目中没有classes文件,我建议你去服务器上面找,在服务器什么编译的,,tomcat去webapps里面找到对应的项目名,然后根据你的bulidpath去找,肯定有。

p011235
p011235 我只要能够有输出就可以了
一年多之前 回复
Neoest
Neoest   2016.04.24 15:44

还有一点就是,超链接访问servlet,,,说真的我真没有这样用过,,你这样是没有请求的,肯定会报错,

p011235
p011235 那怎么使用啊
一年多之前 回复
u014686157
u014686157   2016.04.25 09:27

先Clean 下项目, 估计是其他缓存文件导致服务器出错

zcy_fover
zcy_fover   2016.04.25 11:01

你可以试一下little_how的建议,我觉的可能也是这个问题。

CSDNXIAOD
CSDNXIAOD   2016.04.25 18:21

用servlet跳转页面
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!