Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 让jsp文件转到servlet_Java_Spring_Jsp_Servlets - Fatal编程技术网

Java 让jsp文件转到servlet

Java 让jsp文件转到servlet,java,spring,jsp,servlets,Java,Spring,Jsp,Servlets,我的.jsp文件在执行某些操作后出现问题,它必须转到我的login.java(servlet)中。我认为这样做是可能的: web inf/serverlet文件夹(我创建的)中的login.java servlet 并在我的jsp页面中执行${pageContext.request.contextPath}/servlets/login as url 然后问题是我得到一个错误“请求的资源()不可用”,代码404 不可能让jsp通过url进入servlet吗 您好,您不能将.java文件放入已编译

我的.jsp文件在执行某些操作后出现问题,它必须转到我的login.java(servlet)中。我认为这样做是可能的:

web inf/serverlet文件夹(我创建的)中的login.java servlet 并在我的jsp页面中执行${pageContext.request.contextPath}/servlets/login as url

然后问题是我得到一个错误“请求的资源()不可用”,代码404

不可能让jsp通过url进入servlet吗


您好,

您不能将.java文件放入已编译的应用程序中。查看本教程:例如,使用NetbeansIDE开发jsp+servlet。

问题的答案是:是的,这是完全可能的。

您需要在Java源代码文件夹中的包中,而不是在web文件夹中手动创建的文件夹中,创建servlet作为普通Java类。您还需要将servlet映射到URL模式

在Java源代码文件夹中创建一个包
com.example
(或其他东西,但它必须在包中),然后用常规Java方法创建以下类:

package com.example;

// ...

@WebServlet("/login")
public class Login extends HttpServlet {

    // ...

}
如果您使用的是Eclipse或Netbeans之类的IDE,那么它将自动编译到正确的文件夹中,并且在部署后,它将在URL
/login
上相对于上下文路径可用


如果您仍然没有使用与Servlet 3.0兼容的容器(Tomcat 7、Glassfish 3等),那么您需要删除
@WebServlet
注释,并以旧式方式在
web.xml
中注册Servlet,如下所示:


登录
com.example.Login
登录
/登录
另见:
  • -包含一些Hello World示例

没有在tomcat服务器上编译和部署,但是我的jsp页面找不到/servlet/login。我什么都有控制器。那篇教程我已经读过了。谢谢,只有webservlet不工作才会给我错误,在google上搜索,我需要包含import javax.servlet.annotation.webservlet;但这在spring源代码工具套件中并不存在。webservlet为我提供了注释类型webservlet的未定义属性值。感谢您的帮助。然后删除它并使用老式的
web.xml
配置方法,如链接的wiki页面所示。我已经更新了答案。谢谢。只是仍然有一些错误,我仔细检查了所有的拼写错误:“be.uhasselt.burgerdemocratie”是完整的限定类名吗?这似乎是唯一的包裹名称。如果它确实是FQN,尽管违反了Java命名约定,那么这个错误意味着它没有被编译到正确的位置。你在使用什么IDE?我做的和教程中完全一样,也只是给出了包名。这里是我的web.xml和servlet的两个截图。我正在使用spring工具套件。谢谢你的帮助。