java httpservlet jsp,java – HttpServlet和JSP集成

我想知道可以将自定义servlet逻辑与.jsp模板视图集成.例如,我有以下servlet:

public class MyServlet extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String name = "Mark";

}

}

我想将名称变量放在jsp文件(new.jsp)中,如:

New

我的web.xml:

MyServlet

/new.jsp

MyServlet

/new

我不想把名字放在请求中.

有帮助吗?

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);

}

}

我也改变了我的看法:

New

${name}

但是当我使用${name}时,没有显示任何内容.我认为我应该导入任何jstl,但不幸的是,如果我使用我变空了.

更新2

终于解决了!这是我的错,我忘记了

MyServlet

com.example.MyServlet

解决方法:

您需要实现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映射,如下所示

MyServlet

com.example.MyServlet

MyServlet

/new

然后你可以在http://localhost:8080/contextname/new之前调用servlet.在转发的JSP中,你只能通过EL访问这个名字

${name}

请注意,JSP放在/ WEB-INF文件夹中,以避免直接访问,而无需通过在浏览器地址栏中输入JSP URL来调用预处理servlet.

也可以看看:

标签:java,jsp,servlets

来源: https://codeday.me/bug/20190826/1734985.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值