何让welcome-file跳转到Action呢

如何让welcome-file跳转到Action呢?

设置welcome-file跳到Action总是报404,因为需要在首页加载数据,需要进action,怎么办呢?

解决方法:

1.

welcome list 是可以设置xxxx.do的,只不过你要建一个相同名的空文件了 
比如你要让welcome list 指向index.do 
你在工程根目录下建个index.do的文件就行了,空的,什么都不用写 
tomcat的配置文件里面有说明,看看就明白了!

2.

指定一个页面再跳到action:

<welcome-file-list> 
<welcome-file>index.html </welcome-file> 
</welcome-file-list> 
index.html里面写: 
<body bgcolor="#FFFFFF" text="#000000"> 
<script language="javascript"> 
location.href = " <%=request.getContextPath()%>/newsmain.do" 
</script> 
</body>


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现以上功能需要编写以下几个文件: 1. UserBean.java:用于存储用户信息,包括用户名和密码。 ```java public class UserBean { private String username; private String password; public UserBean(String username, String password) { this.username = username; this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } ``` 2. HelloServlet.java:判断用户登录状态,如果已经登录,到hello.jsp页面,否则到login.jsp页面。 ```java public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); UserBean user = (UserBean) session.getAttribute("user"); if (user != null) { response.sendRedirect("/hello.jsp"); } else { response.sendRedirect("/login.jsp"); } } } ``` 3. LoginServlet.java:处理登录请求,判断用户输入的账号密码是否正确,如果正确到hello.jsp页面;如果错误,到login.jsp页面。 ```java public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); List<UserBean> userList = (List<UserBean>) getServletContext().getAttribute("userList"); for (UserBean user : userList) { if (user.getUsername().equals(username) && user.getPassword().equals(password)) { HttpSession session = request.getSession(); session.setAttribute("user", user); response.sendRedirect("/hello.jsp"); return; } } request.setAttribute("error", "账号错误/密码错误"); request.getRequestDispatcher("/login.jsp").forward(request, response); } } ``` 4. RegisterServlet.java:处理注册请求,将用户的账号名和密码存入到list中,将账号名放入session存储,页面到success.jsp页面。 ```java public class RegisterServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); List<UserBean> userList = (List<UserBean>) getServletContext().getAttribute("userList"); for (UserBean user : userList) { if (user.getUsername().equals(username)) { request.setAttribute("error", "账号已存在"); request.getRequestDispatcher("/register.jsp").forward(request, response); return; } } if (username.isEmpty() || password.isEmpty()) { request.setAttribute("error", "账号密码不能为空"); request.getRequestDispatcher("/register.jsp").forward(request, response); return; } UserBean user = new UserBean(username, password); userList.add(user); HttpSession session = request.getSession(); session.setAttribute("user", user); response.sendRedirect("/success.jsp"); } } ``` 5. login.jsp:登录页面,允许用户输入账号密码,点击登录后将表单数据发送到LoginServlet处理。 ```html <form action="/login" method="post"> <div> <label>账号:</label> <input type="text" name="username"> </div> <div> <label>密码:</label> <input type="password" name="password"> </div> <div> <input type="submit" value="登录"> </div> <div> <a href="/register.jsp">注册</a> </div> <div> ${error} </div> </form> ``` 6. register.jsp:注册页面,允许用户填写账号密码,点击注册后将表单数据发送到RegisterServlet处理。 ```html <form action="/register" method="post"> <div> <label>账号:</label> <input type="text" name="username"> </div> <div> <label>密码:</label> <input type="password" name="password"> </div> <div> <input type="submit" value="注册"> </div> <div> ${error} </div> </form> ``` 7. success.jsp:注册成功页面,显示注册成功信息,3秒钟后自动到登录页面。 ```html <p>注册成功!</p> <script> setTimeout(function () { window.location.href = "/login.jsp"; }, 3000); </script> ``` 最后,在web.xml文件中配置各个servlet和jsp页面的访问路径。同时,在ServletContextListener中初始化用户列表。 ```xml <web-app> <listener> <listener-class>com.example.UserListListener</listener-class> </listener> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.example.HelloServlet</servlet-class> </servlet> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.example.LoginServlet</servlet-class> </servlet> <servlet> <servlet-name>RegisterServlet</servlet-name> <servlet-class>com.example.RegisterServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>RegisterServlet</servlet-name> <url-pattern>/register</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> ``` 在ServletContextListener中初始化用户列表。 ```java public class UserListListener implements ServletContextListener { public void contextInitialized(ServletContextEvent sce) { List<UserBean> userList = new ArrayList<>(); sce.getServletContext().setAttribute("userList", userList); } public void contextDestroyed(ServletContextEvent sce) { } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值