相关疑难解决方法(0)

如何避免JSP文件中的Java代码?

我是Java EE的新手,我知道类似以下三行

<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
Run Code Online (Sandbox Code Playgroud)

是一种旧式的编码方式,在JSP版本2中,存在一种避免JSP文件中的Java代码的方法.有人可以告诉我替代的JSP 2行,以及这种技术的名称是什么?

java jsp scriptlet

1649
推荐指数
24
解决办法
28万
查看次数

在Java Web应用程序中从应用程序服务器外部提供静态数据的最简单方法

我有一个在Tomcat上运行的Java Web应用程序.我想加载静态图像,这些图像将在Web UI和应用程序生成的PDF文件中显示.此外,还将通过Web UI上传添加和保存新图像.

通过将静态数据存储在Web容器中但从Web容器外部存储和加载它们来解决这个问题并不是一个问题.

我不想在此时使用像Apache这样的单独的Web服务器来提供静态数据.我也不喜欢将图像以二进制形式存储在数据库中.

我已经看到一些建议,比如将图像目录作为指向Web容器外部目录的符号链接,但这种方法是否适用于Windows和*nix环境?

有人建议编写一个过滤器或servlet来处理图像服务,但这些建议非常模糊和高级别,没有指向如何实现这一目标的更详细信息.

tomcat servlets static-content java-ee

129
推荐指数
5
解决办法
14万
查看次数

如何处理在Spring MVC中呈现视图时抛出的异常?

我有一个Spring MVC应用程序,它使用FreeMarker作为View技术(但也许视图技术对我的问题并不重要).我需要拦截在请求期间可能抛出的所有异常.

我已经实现了HandlerExceptionResolver,但只有在控制器中发生异常时才会执行此解析程序.但是当控制器返回ModelAndView并且在渲染视图时发生异常(因为找不到变量或类似的东西),则不会调用异常解析器,而是在浏览器窗口中获得堆栈跟踪.

我还尝试在控制器中使用异常处理程序方法,该方法返回视图并使用@ExceptionHandler对其进行注释,但这也不起作用(很可能是因为异常不会在控制器中抛出但在视图中).

那么是否有一些Spring机制可以注册一个捕获视图错误的异常处理程序?

java spring freemarker spring-mvc

27
推荐指数
2
解决办法
2万
查看次数

在重定向过滤器时停止进一步处理

我有URLRewirteFilter,它检查请求的域是否以www开头.并重定向到no-www url.当要重定向请求时,如何停止进一步处理(调用JSF应用程序,调用servlet等)?到目前为止我有这个:

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest req = (HttpServletRequest) request;
    String sn = req.getServerName().toLowerCase();
    if (sn.startsWith("www.")) {
        String url = "http://" + getDefaultDomain() + req.getContextPath() + req.getRequestURI();
        HttpServletResponse resp = (HttpServletResponse) response;
        resp.reset();
        resp.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
        resp.setHeader("Location", url);
    }
    chain.doFilter(request, response);
}
Run Code Online (Sandbox Code Playgroud)

java servlet-filters

20
推荐指数
1
解决办法
3万
查看次数

Servlet的"响应已经承诺"的原因

在servlet中遇到此异常的常见可能性是什么 - 响应已经提交?

servlets exception response

20
推荐指数
1
解决办法
4万
查看次数

如何在Java Servlet中有效地破坏'session'?

我正在使用的Servlet有一个变量session.

我试过session.invalidate();,这似乎已经破坏了会话但是当我像这样重定向时response.sendRedirect("restanes.jsp");,它给了我HTTP Status 500这行错误:

java.lang.IllegalStateException: getAttribute: Session already invalidated
Run Code Online (Sandbox Code Playgroud)

这是因为我试图破坏会话.

但为什么页面无法重定向?在其他地方的同一页面上,我已成功重定向.

如何成功销毁会话和重定向?

代码段:

if(request.getParameter("logout") != null ){  
        session.invalidate();
        response.sendRedirect("restanes.jsp");
}
Run Code Online (Sandbox Code Playgroud)

更新:我需要做的就是return;追求response.sendRedirect("restanes.jsp");.真诚的感谢BalusC.

java session servlets destroy

19
推荐指数
1
解决办法
8万
查看次数

如何修复响应提交后无法调用sendRedirect()?

我正在尝试使用以下代码将值从servlet传递到jsp页面:

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    PrintWriter out = response.getWriter();
    try {
        System.out.println("try");

        String taskid=request.getParameter("id");   
        convty = new Connectivity();
        con = convty.setConnection();
        st=con.createStatement();

        query="select * from task_table";

        rset=convty.getResultSet(query, con);
        while(rset.next()) {
            System.out.println("while");
            lst.add(rset.getString("task_id"));
            lst.add(rset.getString("date"));
            lst.add(rset.getString("project_name"));    
        }
        rset.close();
        System.out.println("after while");

    } catch(Exception e) {

        RequestDispatcher dd= request.getRequestDispatcher("error.jsp");
        dd.forward(request, response);

    } finally {
        System.out.println("finally1");
        HttpSession sessionvar = request.getSession();
        sessionvar.setAttribute("TaskData", "lst");

        response.sendRedirect("usertaskpage.jsp");

        lst.clear();
        out.close();            
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行我的页面时,我得到:

错误:

java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed …
Run Code Online (Sandbox Code Playgroud)

java jsp servlets illegalstateexception

19
推荐指数
1
解决办法
9万
查看次数

如何在基于servlet的Web应用程序中临时保存生成的文件

我正在尝试生成一个XML文件并将其保存/WEB-INF/pages/.

下面是我使用相对路径的代码:

File folder = new File("src/main/webapp/WEB-INF/pages/");
StreamResult result = new StreamResult(new File(folder, fileName));
Run Code Online (Sandbox Code Playgroud)

在本地计算机上作为应用程序运行时,它工作正常 (C:\Users\userName\Desktop\Source\MyProject\src\main\webapp\WEB-INF\pages\myFile.xml).

但是当在服务器机器上部署和运行时,它会引发以下异常:

javax.xml.transform.TransformerException:java.io.FileNotFoundException C:\ project\eclipse-jee-luna-R-win32-x86_64\eclipse\src\main\webapp\WEB INF\pages\myFile.xml

我也尝试getServletContext().getRealPath()了,但它正在null我的服务器上返回.有人可以帮忙吗?

servlets relative-path realpath

15
推荐指数
1
解决办法
9940
查看次数

Servlet重定向到同一页面,并显示错误消息

我有一个关于servlet重定向到同一初始页面的问题.以下是场景:假设用户想要购买物品,那么他填写金额并提交.表单将提交给servlet,并根据数据库中的可用数量检查可用数量.因此,如果订购的商品数量超过可用数量,则servlet会重定向到同一页面,但会显示"商品不可用"等消息.所以我的问题是如何实现这个案例.如何使用错误消息重定向到同一初始页面.我不想在这里使用ajax.

以下是我如何将其视为:1.)如果生成错误,我应该设置上下文属性,然后在重定向后再次在初始页面中检查它并显示已设置的消息.

这类活动的最佳做法是什么?

java redirect jsp scope servlets

13
推荐指数
1
解决办法
7万
查看次数

Servlet重定向

resp.sendRedirect("/myurl");
req.getSession().setAttribute("foo", "bar");
Run Code Online (Sandbox Code Playgroud)

在这种情况下,重定向后是否可以访问foo属性?一般来说,servlet在重定向之前完全执行,或者在重定向行之后停止执行?

谢谢

java redirect servlets

7
推荐指数
1
解决办法
2万
查看次数