如何处理hsp参数jsp

时间:2014-09-03 12:17:45

标签: java jsp servlets model-view-controller

我的测试页面很少,但我无法获取请求参数,因此无法理解原因。 测试页面有" href"像这样的链接:

<a href="main.jspc?param=show" class="submenu">Show smth</a>

简单的控制器:

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

public class Controller extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        processRequest(request, response);
    }

    protected void processRequest (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        StringBuilder sb = new StringBuilder("Do SMTH<br>");
        sb.append("Other will be later...<br>");
        String s = sb.toString();
        request.setAttribute("result", s);
        RequestDispatcher view = request.getRequestDispatcher("test.jsp");
        view.forward(request,response);
    }
}

的web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <welcome-file-list>
        <welcome-file>main.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>controller</servlet-name>
        <servlet-class>Controller</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>controller</servlet-name>
        <url-pattern>/main.jspc</url-pattern>
    </servlet-mapping>
</web-app>

和测试页面,我想在其中显示一些获得的参数:

test.jsp的:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
<%
    out.print("<br>" + "Parameter: ");
    request.getParameter("param");
    out.print("<br>"+ "URL:");
    request.getRequestURL();
    out.print("<br>" + "Result:");
    request.getParameter("result");
%>
</body>
</html>

但显示空参数的测试页面,我不明白为什么。

1 个答案:

答案 0 :(得分:0)

在JSP中使用scriptlet(那些&lt; %%&gt;事物)是旧的,并且因为taglibs(JSTL)和EL(Expression Language}的诞生而不鼓励这些$ {}的东西)。

使用以下代码访问您的参数:

Parameter : ${params} <br>
Result : ${result} <br>
URL : ${pageContext.request.requestURI}