如何知道哪个 servlet 将处理来自 JSP 的 "submit" 查询?
How to know which servlet will handle a "submit" query from a JSP?
我对使用 Servlet、JSP 等编写 Web 应用程序还比较陌生。
在我的例子中,我想要 2 个 servlet 和 5 个 JSPs,一个 servlet 就可以了,它正在初始化与 MySQL 数据库的连接以及重定向到各种 JSPs 和另一个 Servlet 是对应于 JSPAdmin 页面的 ServletAdmin,比其他 servlet 具有更多关于数据库访问的权限。
现在我希望 ServletAdmin 只处理来自 JSPAdmin 页面的请求,但我不知道它是如何工作的,我是否必须使用 @WebServlet 注释为我的 servlet 设置参数?我已经为第一个这样做了:
@WebServlet(
name = "ServletConnection",
displayName = "Connection handling Servlet",
urlPatterns = {"/JSPConnection", "/JSPInit","/JSPCaddie","/JSPPay"}
)
我不太明白我在做什么,我之前搜索过我的问题并遇到了那个解决方案,所以我试图从中得到一些东西,但是我宁愿问清楚。
每个 JSP 和每个 Servlet 当前都在各自文件夹的根目录中
我的 JSP 的命名分别在 urlPatterns 和我上面的段落中引用,我的 Servlet 也是如此。
无论 class 您在表单内的操作字段中输入什么,该 servlet 都会处理提交请求。 action 和 urlpatterns 的值应该匹配。这就是您的请求如何知道哪个 servlet 将处理您的请求。
如果您不使用表单,href 值应与 urlpatterns 匹配。
<form method="POST" action='UserController' name="frmAddUser">
User ID : <input type="text" readonly="readonly" name="userid"
value="<c:out value="${user.userid}" />" /> <br />
<input type="submit" value="Submit" />
</form>
<a href="UserController">Click Here </a>
注解:
@WebServlet(name = "Servlet", description = "This is a servlet with annotations", urlPatterns = "/UserController")
最好的办法就是不要太复杂,也不要把servlet 淹没在大量不同的逻辑中。如果你有一个servlet逻辑适合不止一个jsp,没关系。用它。为该 servlet 分配一个 URL 值,并在您喜欢的任何页面上使用它。
@WebServlet(name = "MyServlet", urlPatterns={"/whatever"})
在您的 JSP 表单中:
<form action="whatever" method="POST">
祝你好运:)
我对使用 Servlet、JSP 等编写 Web 应用程序还比较陌生。
在我的例子中,我想要 2 个 servlet 和 5 个 JSPs,一个 servlet 就可以了,它正在初始化与 MySQL 数据库的连接以及重定向到各种 JSPs 和另一个 Servlet 是对应于 JSPAdmin 页面的 ServletAdmin,比其他 servlet 具有更多关于数据库访问的权限。
现在我希望 ServletAdmin 只处理来自 JSPAdmin 页面的请求,但我不知道它是如何工作的,我是否必须使用 @WebServlet 注释为我的 servlet 设置参数?我已经为第一个这样做了:
@WebServlet(
name = "ServletConnection",
displayName = "Connection handling Servlet",
urlPatterns = {"/JSPConnection", "/JSPInit","/JSPCaddie","/JSPPay"}
)
我不太明白我在做什么,我之前搜索过我的问题并遇到了那个解决方案,所以我试图从中得到一些东西,但是我宁愿问清楚。
每个 JSP 和每个 Servlet 当前都在各自文件夹的根目录中
我的 JSP 的命名分别在 urlPatterns 和我上面的段落中引用,我的 Servlet 也是如此。
无论 class 您在表单内的操作字段中输入什么,该 servlet 都会处理提交请求。 action 和 urlpatterns 的值应该匹配。这就是您的请求如何知道哪个 servlet 将处理您的请求。
如果您不使用表单,href 值应与 urlpatterns 匹配。
<form method="POST" action='UserController' name="frmAddUser">
User ID : <input type="text" readonly="readonly" name="userid"
value="<c:out value="${user.userid}" />" /> <br />
<input type="submit" value="Submit" />
</form>
<a href="UserController">Click Here </a>
注解:
@WebServlet(name = "Servlet", description = "This is a servlet with annotations", urlPatterns = "/UserController")
最好的办法就是不要太复杂,也不要把servlet 淹没在大量不同的逻辑中。如果你有一个servlet逻辑适合不止一个jsp,没关系。用它。为该 servlet 分配一个 URL 值,并在您喜欢的任何页面上使用它。
@WebServlet(name = "MyServlet", urlPatterns={"/whatever"})
在您的 JSP 表单中:
<form action="whatever" method="POST">
祝你好运:)