Servlet跳转到jsp不加载css样式

原创 2016年08月30日 15:03:00

jsp向servlet作请求,servlet接受到请求之后转发会原来的jsp页面,出现jsp页面不加载css样式的现象

1.jsp页面请求代码

<script type="text/javascript">
	$(document).ready(function() {
		$("#submitbtn").click(function() {
			$("#loginform").attr("action","/BookStore/UserServlet?method=login")
			var uname = $("#username").val();
			var pwd = $("#password").val();
			if (uname == "") {
				alert("用户名不能为空");
				return false;
				
			}
			if (pwd == "") {
				alert("密码不能为空");
				return false;
			}
			$("#loginform").submit();

		});
	});
</script>
2.servlet转发回页面代码
	public String login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		User form = CommonUtils.toBean(req.getParameterMap(), User.class);

		Map<String, String> errors = new HashMap<String, String>();
		// 对验证码进行校验
		String sessionVerifyCode = (String) req.getSession().getAttribute("session_vcode");
		String verifyCode = form.getVerifyCode();//等同于req.getParameter("verifyCode");
		System.out.println("1."+sessionVerifyCode);
		System.out.println("2."+verifyCode);
		if (verifyCode == null || verifyCode.trim().isEmpty()) {
			errors.put("verifyCode", "验证码不能为空!");
		} else if (verifyCode.length() != 4) {
			errors.put("verifyCode", "验证码长度必须为4!");
		} else if (!verifyCode.equalsIgnoreCase(sessionVerifyCode)) {
			errors.put("verifyCode", "验证码错误!");
		}

		/*
		 * 判断map是否为空,不为空,说明存在错误
		 */
		if (errors != null && errors.size() > 0) {
			/*
			 * 1. 保存errors到request域 2. 保存form到request域,为了回显 3. 转发到regist.jsp
			 */
			req.setAttribute("errors", errors);
			req.setAttribute("user", form);

			return "f:/jsps/user/login.jsp";
			
		}

		try {
			User user = userService.login(form);
			req.getSession().setAttribute("session_user", user);

			return "r:/index.jsp";// session重定向到index.jsp

		} catch (Exception e) {
			req.setAttribute("msg", e.getMessage());
			req.setAttribute("form", form);
			return "f:/jsps/user/login.jsp";// 转发错误信息
		}

	}
3.解决办法
将所有引用的css和js文件都写成绝对路径,如src="<%=path%>/css/......",path就是在开头声明一下<% String path=request.getContextPath(); %>。


相关文章推荐

UIWebView加载html,不显示资源图片,不加载css样式

UIWebView加载本地html文件,不显示资源图片,不加载css样式 项目中需要加载本地的html,不显示本地的资源图片文件,而且样式也跟浏览器打开的不一样。初步判断是资源路径读取的问题。 鉴于...

struts/Servlet,action转到jsp后,CSS失效,路径问题(struts2,jsp路径,action路径,action跳转,相对路径,绝对路径)

转载于:http://www.cnblogs.com/kenkofox/archive/2011/06/11/2078062.html 问题:使用struts2,如何处理action的路...
  • hb_peng
  • hb_peng
  • 2015年05月15日 10:13
  • 1087

Styling Broken Images (给加载失败的图片加上css样式) - 不完全翻译

Styling Broken Images (给加载失败的图片加上css样式) - 不完全翻译前言 Broken images are ugly.  But they don’t a...
  • FungLeo
  • FungLeo
  • 2017年02月22日 10:06
  • 1032

css样式加载顺序及覆盖顺序深入理解

很多的新手朋友们对css样式加载顺序和覆盖顺序的理解有所偏差,下面用示例为大家详细的介绍下 查找一些教材中(w3schools等),只说css的顺序是“元素上的style” > “文件头上的styl...

css样式加载顺序及覆盖顺序

通过动态添加class的方式修改一个div的样式,总是不起作用。 如下面的代码,id为“navigator”的元素,添加类.current_block,边框颜色确不变? Css代码 ...

ueditor更改工具栏按钮,设置css样式,第二次无法正常加载的解决方法

今天项目上要用到ueditor,我在使用中遇到了一些问题,最后解决。 下载UEditor【1.4.3 JSP版本】.下载地址:http://ueditor.baidu.com/website/down...

[转]css样式加载顺序及覆盖顺序深入理解

css样式加载顺序及覆盖顺序深入理解 链接地址:这里写链接内容 很多的新手朋友们对css样式加载顺序和覆盖顺序的理解有所偏差,下面用示例为大家详细的介绍下,感兴趣的朋友不要错过{ height:...

Angular2.0如何把CSS样式加载进组件中?

我们有几种方式来把样式加入组件: 内联在模板的 HTML 中 设置styles或styleUrls元数据 通过 CSS 文件导入 上述作用域规则对所有这些加载模式都适用。 元数据中...

WKWebView上JS交互与加载CSS样式(Hybrid混合开发)

首先,我们需要准备一篇带有交互脚本的HTML 我是大标题 我是2标题 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Servlet跳转到jsp不加载css样式
举报原因:
原因补充:

(最多只允许输入30个字)