Code Bye

Servlet中无法实现跳转了

 

今天刚开始学习jQuery EasyUI, 做了个简单的登录窗口, 用户和密码两个字段, 访问的是Servlet, 可以在后台打印出两个字段的值,简单的验证了一下值然后跳转, 结果浏览器无反应

页面代码如下:

<div class="easyui-panel" title="用户登录" style="width:300px">
			<div style="padding:10px 0 0 40px">
				<form id="ff" method="post" action="http://localhost:8080/easyui/UserLoginServlet">
					<table>
						<tr>
							<td>
								用户:
							</td>
							<td>
								<input class="ww" type="text" name="name"></input>
							</td>
						</tr>
						<tr>
							<td>
								密码:
							</td>
							<td>
								<input class="ww" type="password" name="password"></input>
							</td>
						</tr>
					</table>
				</form>
			</div>
			<div style="text-align:center;padding:5px">
				<a href="javascript:void(0)" class="easyui-linkbutton"
					onclick="submitForm()">登录</a>
				<a href="javascript:void(0)" class="easyui-linkbutton"
					onclick="clearForm()">取消</a>
			</div>
		</div>
		<script>
			function submitForm(){
				$(""#ff"").form(""submit"");
			}
			function clearForm(){
				$(""#ff"").form(""clear"");
			}
		</script>

后台Servlet如下:

public class UserLoginServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}

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

		request.setCharacterEncoding("UTF-8");

		String name = request.getParameter("name");
		String password = request.getParameter("password");

		System.out.println("用户: " + name);
		System.out.println("密码: " + password);

		if("admin".equals(name) && "123".equals(password)) {
			request.getRequestDispatcher("/success.html").forward(request, response);
		} else {
			response.sendRedirect("http://localhost:8080/easyui/fail.html");
		}
	}
}

工程web.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  
  <servlet>
    <servlet-name>UserLoginServlet</servlet-name>
    <servlet-class>com.wisher.easyui.servlet.UserLoginServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>UserLoginServlet</servlet-name>
    <url-pattern>/UserLoginServlet</url-pattern>
  </servlet-mapping>
  
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>

success.html和fail.html都是创建在WebRoot目录下面


4分
你把form表单里面的action值改成你servlet在xml中的servlet-name试一试,就是UserLoginServlet

4分
有异常错误信息吗?

4分
request.getRequestDispatcher改为this.getServletContext().getRequestDispatcher

4分
request.getRequestDispatcher(“/success.html”).forward(request, response);

response.sendRedirect(“http://localhost:8080/easyui/fail.html”);

success.html和fail.html都是创建在WebRoot目录下面?

目测是路径

引用 1 楼 u010755524 的回复:

你把form表单里面的action值改成你servlet在xml中的servlet-name试一试,就是UserLoginServlet

试过了,java后台仍能获取两个值,还是无法跳转

引用 2 楼 rui888 的回复:

有异常错误信息吗?

我分别使用的是谷歌浏览器和Opera浏览器,然后都打开了页面调试工具,没有报错,另外java后台也无错误显示

引用 3 楼 fangmingshijie 的回复:

request.getRequestDispatcher改为this.getServletContext().getRequestDispatcher

代码改成你说的那样,还是没反应,关键是不报错,也不跳转。。。


4分
如果 都进了doPost方法,那几行跳转代码是没有问题的啊?你试着简单的测试,不要使用jquery
js像这样  document.forms[0].submit();看是不是环境的问题。
解决了,果然是前台使用的jQuery的原因造成的,改成最原始的html form提交就正常了
引用 9 楼 gan_yufei 的回复:

解决了,果然是前台使用的jQuery的原因造成的,改成最原始的html form提交就正常了

 你这么做的话怎么实现 form的验证呢? 哪个为什么无法提交,我这也碰到了,。应该有办法解决的,。  

我也碰到了,就是无法跳转,感觉还是easyUI 没学明白

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Servlet中无法实现跳转了