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