首页 文章

将对象转换为String运行时Apache错误:[关闭]

提问于
浏览
-3

我的Servlet代码:

@WebServlet(description = "A simple", urlPatterns = { "/SimpleServlet" })
public class SimpleServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

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

        response.setContentType("text/html");
        PrintWriter wr = response.getWriter();
        String uname = request.getParameter("unam");
        HttpSession ses = request.getSession(); 

        if (uname != "" && uname != "null") {
            ses.setAttribute("userses", ses);   
        }

        wr.println("In RequestHttp method your name is "+ uname);
        wr.println("In Sesssion method  your name is " + (String)ses.getAttribute("userses"));
    }
}

`Apache Tom Cat 7:0错误严重:servlet [org.sathish.brains.SimpleServlet]的Servlet.service()在路径[/ SimpleServletProject]的上下文中引发了异常java.lang.ClassCastException:org.apache.catalina.session .StandardSessionFacade不能在的javax.servlet在javax.servlet.http.HttpServlet.service(HttpServlet.java:621)铸造为java.lang.String在org.sathish.brains.SimpleServlet.doGet(SimpleServlet.java:37) . http.HttpServlet.service(HttpServlet.java:728)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)在org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)在org.apache.catalina.core.ApplicationFilterChain .doFilter(ApplicationFilterChain.java:210)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrap) perValve.java:222)在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)在org.apache.catalina .core.StandardHostValve.invoke(StandardHostValve.java:171)在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)在org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953 )在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)在org.apache.coyote.http11.AbstractHttp11Processor . 进程(AbstractHttp11Processor.java:1044)org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:607)at org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:313) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecut或java.lang.Thread.run上的$ Worker.run(ThreadPoolExecutor.java:615)(Thread.java:744)

2 回答

  • 0

    看看这一行:

    ses.setAttribute("userses", ses);
    

    您将自己的会话作为属性传递 . 我想你要做的就是这样

    ses.setAttribute("userses", uname);
    
  • 1
    if (uname != "" && uname != "null") {
        ses.setAttribute("userses", ses);   
    }
    

    你真的想把会话添加到会话中吗?我怀疑,你可能想要将属性设置为 uname . 更加注意你的代码 .

    并删除转换为String,这是不必要的 .

    在尝试编写servlet代码之前,请认真学习Java的基础知识 .

相关问题