gpt4 book ai didi

java - 始终为零点

转载 作者:行者123 更新时间:2023-12-01 14:20:45 25 4
gpt4 key购买 nike

在这一行之后,所有方法都会传递空点,System.out.println("Inside the filter..............");谁能告诉我我的代码和逻辑有什么问题

和home.jsp(索引页)没有显示。在这里,我想过滤每个网址并仅处理有效的登录用户请求。这是我的逻辑..

UserServlet.java

 private void loginDetail(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

User u = new User();
UserService us =new UserServiceImpl() ;

String Uname = request.getParameter("txtUname");
String Pwrd = request.getParameter("txtPwrd");

u.setUname(Uname);
u.setPwrd(Pwrd);

System.out.println(Uname+""+Pwrd);
try {
if(us.Userlogin(u.getUname(),u.getPwrd())){
String message = "Thank you, " + Uname +"..You are now logged into the system";
request.setAttribute("message", message);
//RequestDispatcher rd = getServletContext().getRequestDispatcher("/menu.jsp");
//rd.forward(request, response);
HttpSession session = request.getSession(true);
session.setAttribute("loggedUser", u);
String reqUrl = (String)session.getAttribute("requestedURL");
session.removeAttribute("requestedURL");
response.sendRedirect(reqUrl);
}else{
// direct to login}

FilterRequest.java

public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}

public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
System.out.println("Inside the filter.............." );
HttpSession session = request.getSession(true);
User u = null;
if(session.getAttribute("loggedUser")!=null){
u = (User) session.getAttribute("loggedUser");
}
if (u!= null)
{
System.out.println("user does exits.." + u.getUname() );
chain.doFilter(req, resp);
}else{
String message = "Please Login!";
req.setAttribute("loginMsg", message);
//response.sendRedirect("login2.jsp");
}
}

web.xml

  <filter>
<filter-name>FilterRequest</filter-name>
<filter-class>com.mobitel.bankdemo.web.FilterRequest</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterRequest</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

堆栈跟踪

 `Jul 11, 2013 10:24:26 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre6\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre6/bin/client;C:/Program Files/Java/jre6/bin;C:/Program Files/Java/jre6/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Kaspersky Lab\Kaspersky Anti-Virus 6.0 for Windows Workstations MP4\;C:\Program Files\Java\jdk1.6.0_07/bin;C:\Program Files\MySQL\MySQL Server 5.2\bin;D:\common libs\com.mysql.jdbc_5.1.5.jar;;C:\Users\lcladmin\Documents\Softwares\java related\eclipse-jee-indigo-win32_2\eclipse;
Jul 11, 2013 10:24:26 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:BankDemoWeb' did not find a matching property.
Jul 11, 2013 10:24:27 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Jul 11, 2013 10:24:27 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jul 11, 2013 10:24:27 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 554 ms
Jul 11, 2013 10:24:27 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jul 11, 2013 10:24:27 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.41
Jul 11, 2013 10:24:27 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jul 11, 2013 10:24:27 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jul 11, 2013 10:24:27 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 517 ms
Inside the filter..............
user does exits..`

谢谢你..

最佳答案

您有一个非常简单的问题:用户未登录;)

澄清事情:

Filter中,您将检查用户是否已登录,在本例中使用以下命令执行链

chain.doFilter(req, resp);

到目前为止还不错。

但是如果用户未登录会发生什么?在这种情况下,您不会执行链,因此没有 ServletServlet 始终是链中的最后一个元素。

因此,您的用户无法登录,因为他们从未访问过允许他们登录的 Servlet,而您之前将其过滤掉。

您必须扩展过滤器以允许在没有用户登录时登录。这可以完成,例如通过更改过滤器url-pattern

关于java - 始终为零点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17585041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com