登录后访问每个页面 [英] Access to every page after loging

查看:97
本文介绍了登录后访问每个页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘿朋友,

我正在使用JAVA,OOP和DAO技术进行项目。在我的项目中,用户可以在登录后访问页面。作为一个例子,我有一个登录后可以看到的菜单页面。想想是否有人试图在没有登录的情况下访问此页面。然后它应该进入登录页面,并显示错误消息。我有15个jsps和10个servlets.Inside那些有很多属性。不能在每个页面中编写相同的东西。所以我的问题是如何使用DAO或OOP技术轻松完成?



这是我的UserServlet.java代码



Hey Friends,
I'm doing a project using JAVA,OOP and DAO techniques. In my project users can access pages after login. as an example i have a menu page which can see after login. think if some one trying to go to this page without login. then it should go to the login page with an error message.think I have 15 jsps and 10 servlets.Inside those there are so many attributes. cannot code same thing in every page.so my question is how to do that easily using DAO or OOP techniques?

Here is my UserServlet.java code

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String operation = request.getParameter("operation");
		if(operation!=null && operation.equalsIgnoreCase("displayMenu")){
			displayHomePage(request,response);
		}
	}
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String operation = request.getParameter("operation");
		if(operation!=null && operation.equalsIgnoreCase("login")){
			loginDetail(request,response);
		}else if(operation!=null && operation.equalsIgnoreCase("logout")){
			logoutSession(request,response);
		}
	}	
	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 {
				String message = "You have to register first or check Your user name password again!";				
				request.setAttribute("loginMsg", message);
				RequestDispatcher rd = getServletContext().getRequestDispatcher("/login2.jsp");
				rd.forward(request, response); 
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block			
			e.printStackTrace();
		}
	}
	private void logoutSession(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        
	    HttpSession  session = request.getSession();
	    session.invalidate();
		try{
			String message = "Logout!";	   
	        session.removeAttribute("loggedUser");  
	        session.invalidate();
			request.setAttribute("loginMsg", message);
			response.sendRedirect(request.getContextPath() + "/login2.jsp");
		}catch(Exception e){
			e.printStackTrace();
		}
	}	
	private void displayHomePage(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{
		HttpSession session = request.getSession(true);
		String nextPage = "/login2.jsp";
		if(session!=null){
			User user = (User)session.getAttribute("loggedUser");
			if(user!=null){
				nextPage = "menu.jsp";
			}else{
				request.setAttribute("errorMsg","Please Login...!");	
				session.setAttribute("requestedURL", "login?operation=displayMenu");
			}
		}
		//response.sendRedirect(nextPage);
		request.getRequestDispatcher(nextPage).forward(request, response);
		//response.sendRedirect(request.getContextPath() + "/Login.jsp");		
	}
}





home.jsp //项目的索引页面




home.jsp// index page of the project

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	<p>Welcome to DemoBank</p>	
	<p><a href="login?operation=displayMenu">Go to home page</a></p>	
</body>
</html>







home.jsp(项目的索​​引页) - >登录。 jsp->其他页面(如果登录成功)



如果有人转到其他页面,它应该指向login.jsp->然后它指向以上是成功路径




home.jsp(index page of the project)->login.jsp->other pages(if login success)

if someone go to other pages it should directs to login.jsp->then it directs to above successfull path

推荐答案

这是我的FilterRequest.java文件代码



Here is my FilterRequest.java file code

public void init(FilterConfig filterConfig) throws ServletException {
		this.filterConfig = filterConfig;
	}
	public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
		try{
	      //HttpServletResponse responce = (HttpServletResponse) resp;
	      //HttpServletRequest request = (HttpServletRequest) req;	      
	      //String servletPath = request.getServletPath();
	      HttpSession session =  ((HttpServletRequest) req).getSession();
	      User u = (User) session.getAttribute("loggedUser");
	      System.out.println(u);
	      if (u!= null)
	      {
	         chain.doFilter(req, resp);
	         return;
	      }
	      /*if (servletPath.equals("/login2.jsp"))
	      {
	         chain.doFilter(req, resp);
	         return;
	      }*/else{
			String message = "Please Login!";				
			req.setAttribute("loginMsg", message);
			RequestDispatcher rd = getServletContext().getRequestDispatcher("/login2.jsp");
			rd.forward(req, resp); 
	      }	      
		}catch(Exception e){
			e.printStackTrace();
		}
	}





这是我的web.xml映射代码..





This is my web.xml Mapping code..

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





当我从头开始运行项目时,它说



when I run the project from the beginning it says "

The requested resource is not available.







哪里出错了?请指导我


"

Where i went wrong? please guide me


这篇关于登录后访问每个页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆