java – HttpServlet和JSP集成
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – HttpServlet和JSP集成,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2902字,纯文字阅读大概需要5分钟。
内容图文
![java – HttpServlet和JSP集成](/upload/InfoBanner/zyjiaocheng/730/13c0a8f021214f2883ff9072c3376fb9.jpg)
我想知道可以将自定义servlet逻辑与.jsp模板视图集成.例如,我有以下servlet:
public class MyServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = "Mark";
}
}
我想将名称变量放在jsp文件(new.jsp)中,如:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>New</title>
</head>
<body>
<%= name %>
</body>
</html>
我的web.xml:
<servlet>
<servlet-name>MyServlet</servlet-name>
<jsp-file>/new.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/new</url-pattern>
</servlet-mapping>
我不想把名字放在请求中.
有帮助吗?
UPDATE
非常感谢,但我仍然遇到麻烦.
首先,我更新了我的servlet:
public class MyServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = "Mark";
request.setAttribute("name", name);
request.getRequestDispatcher("/WEB-INF/new.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = "Mark";
request.setAttribute("name", name);
request.getRequestDispatcher("/WEB-INF/new.jsp").forward(request, response);
}
}
我也改变了我的看法:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>New</title>
</head>
<body>
${name}
</body>
</html>
但是当我使用${name}时,没有显示任何内容.我认为我应该导入任何jstl,但不幸的是,如果我使用<%= request.getAttribute(“name”)%>我变空了.
更新2
终于解决了!这是我的错,我忘记了
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.example.MyServlet</servlet-class>
</servlet>
解决方法:
您需要实现doGet()方法.正常的HTTP请求(单击链接,书签或直接在浏览器地址栏中输入URL)默认为GET方法.
为了在预处理servlet中使JSP中的对象可用,您需要将其设置为请求,会话或应用程序范围中的属性.最后,您需要将请求/响应转发给JSP,以便可以显示它.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = "Mark";
request.setAttribute("name", name);
request.getRequestDispatcher("/WEB-INF/new.jsp").forward(request, response);
}
如果修复servlet映射,如下所示
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.example.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/new</url-pattern>
</servlet-mapping>
然后你可以在http://localhost:8080/contextname/new之前调用servlet.在转发的JSP中,你只能通过EL访问这个名字
${name}
请注意,JSP放在/ WEB-INF文件夹中,以避免直接访问,而无需通过在浏览器地址栏中输入JSP URL来调用预处理servlet.
也可以看看:
> Our Servlets wiki page
> Our Expression Language wiki page
> How to avoid Java code in JSP files?
内容总结
以上是互联网集市为您收集整理的java – HttpServlet和JSP集成全部内容,希望文章能够帮你解决java – HttpServlet和JSP集成所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。