Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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
Servlet到JSP转发导致JSP页面,但不执行java代码(仅html)_Java_Jsp_Rest_Servlets - Fatal编程技术网

Servlet到JSP转发导致JSP页面,但不执行java代码(仅html)

Servlet到JSP转发导致JSP页面,但不执行java代码(仅html),java,jsp,rest,servlets,Java,Jsp,Rest,Servlets,我使用的系统包括Jersey(1.18.1)for REST web服务+定制servlet来处理客户端请求和调用web服务。我还使用表单方法身份验证 问题是,在调用web服务之后,servlet将转发到index.jsp。在该JSP中,html/javascript代码显示良好,但java代码未执行。我必须刷新页面(F5)以获得要执行的java代码(但随后会丢失请求/响应信息)。这种行为的原因可能是什么 下面是my web.xml的外观: <web-app version="2.5" x

我使用的系统包括Jersey(1.18.1)for REST web服务+定制servlet来处理客户端请求和调用web服务。我还使用表单方法身份验证

问题是,在调用web服务之后,servlet将转发到index.jsp。在该JSP中,html/javascript代码显示良好,但java代码未执行。我必须刷新页面(F5)以获得要执行的java代码(但随后会丢失请求/响应信息)。这种行为的原因可能是什么

下面是my web.xml的外观:

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:http="http://cxf.apache.org/transports/http/configuration"
xmlns:sec="http://cxf.apache.org/configuration/security"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
                    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>


<display-name>AdminModule</display-name>
<!-- JERSEY 1.18.1 -->    
<servlet>
    <servlet-name>JerseySpringServlet</servlet-name>
    <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>my.package.restapi</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet>
    <servlet-name>MainController</servlet-name>
    <servlet-class>my.package.controller.MainController</servlet-class>
</servlet>
<servlet>
    <description>
    </description>
    <display-name>Logout</display-name>
    <servlet-name>Logout</servlet-name>
    <servlet-class>my.package.controller.Logout</servlet-class>
</servlet>
<servlet>
    <description>
    </description>
    <display-name>DefaultAction</display-name>
    <servlet-name>DefaultAction</servlet-name>
    <servlet-class>my.package.controller.DefaultAction</servlet-class>
</servlet>
<servlet>
    <description>
    </description>
    <display-name>CreateRole</display-name>
    <servlet-name>CreateRole</servlet-name>
    <servlet-class>my.package.controller.CreateRole</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>JerseySpringServlet</servlet-name>
    <url-pattern>/restapi/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>MainController</servlet-name>
    <url-pattern>/CMQAdmin</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Logout</servlet-name>
    <url-pattern>/Logout</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>DefaultAction</servlet-name>
    <url-pattern>/DefaultAction</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>CreateRole</servlet-name>
    <url-pattern>/CreateRole</url-pattern>
</servlet-mapping>


<security-constraint>
    <web-resource-collection>
        <web-resource-name>Admin security manager</web-resource-name>
        <url-pattern>/index.jsp</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
        <http-method>PUT</http-method>
        <http-method>DELETE</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>role1</role-name>
        <role-name>role2</role-name>
        <role-name>role3</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Admin security manager</web-resource-name>
        <url-pattern>/DefaultAction</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
        <http-method>PUT</http-method>
        <http-method>DELETE</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>role1</role-name>
        <role-name>role2</role-name>
        <role-name>role3</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Admin security manager</web-resource-name>
        <url-pattern>/CMQAdmin</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
        <http-method>PUT</http-method>
        <http-method>DELETE</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>role1</role-name>
        <role-name>role2</role-name>
        <role-name>role3</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>


<!-- Define the Login Configuration for this Application -->
<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/login.jsp</form-login-page>
        <form-error-page>/error.jsp</form-error-page>
    </form-login-config>
</login-config>

<!-- Security roles referenced by this web application -->
<security-role>
    <role-name>role1</role-name>
</security-role>
<security-role>
    <role-name>role2</role-name>
</security-role>
<security-role>
    <role-name>role3</role-name>
</security-role>

<session-config>
    <session-timeout>30</session-timeout>
</session-config>

<welcome-file-list>
    <welcome-file>CMQAdmin</welcome-file>
</welcome-file-list>

</web-app>

我认为您可能在/script上面的javascript位缺少一个结尾}

script type="text/javascript">
。 .

一些html代码DDD

/脚本>
顺便说一句,不推荐使用Scriptlet。我倾向于使用Java标准标记库(JSTL)和bean


除了
${cookie.username.value}
我在index.jsp中没有看到java代码。或者你指的是导入?我写这行代码只是为了说明我至少应该在屏幕上看到“Cookies:…”,但我什么也看不到。剩下的html打印正常。你想让我包括所有index.jsp代码吗?好吧,一个不起作用的示例是好的。我的错误是,“}”确实在我的代码中。我将更新sample.scriptlets是否会导致这种行为?您是否可以查看某个文件夹中是否正在创建index_jsp.java文件。查看预处理的代码可能会有所帮助。对于scriptlet“if(request.isUserInRole(“1”)”)的jstl代码等效于什么?另外,在结束本文时,我发现我使用的一个JQuery移动库正在复制我的主div,并将属性数据外部页面设置为“true”。这个部门是一个考虑到,并没有持有正确的信息。。。糟糕的调试时间。。。
public class CreateRole extends HttpServlet {
    private static final long serialVersionUID = 1L;

    @Autowired
    private RoleFacade roleFacade;

    /**
     * Logger...
     */
    private static final Logger logger = Logger.getLogger(CreateRole.class.getName());

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        logger.info("CreateRole::processRequest");

        String createRole = "AdminModule/SaveOrUpdateRole";

        logger.info("CreateRole::rolename+description: " + rolename + " + " + description);

        // get user roles from web service
        String baseURL = https://localhost/AdminModule/restapi;

        Form form = new Form();
        form.add("rolename", rolename); 
        form.add("description", description);

        JerseyClient client = new JerseyClient(form, baseURL+createRole);
        ClientResponse clientResponse = client.post_Form(form);

        if(clientResponse.getStatus() == 200 || clientResponse.getStatus() == 201) {
            logger.info("ROLE [" + clientResponse.getEntity(String.class) + "] has been successfully created");

            // do whatever with response
            client.close();

            request.setAttribute("", request.getParameter("action"));

            this.getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
            return;
        }
        else {
            request.setAttribute("error", true);
            request.setAttribute("wrErrorMessage", "Could not create new role");
            RequestDispatcher r = this.getServletContext().getRequestDispatcher("/index.jsp");
            r.forward(request, response);
            return;
        }
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        processRequest(request, response);
    }

}
script type="text/javascript">
        <p>some html code DDD</p>
<%
    }
%>


/script>