0%

中级项目出现的问题

2017年9月14日 上午8:24

错误一

The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this app

  1. 关于包路径的:
    1. 在我使用jstl-1.2.jar这个包时,从build path上选中我在桌面上的jar包。同时我在jsp页面也添加了下面两句话。在eclipse中没有提示我报错。但是当我放在服务器上运行的时候,出现了这个错误。
      1
      2
      <%@taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core"%>
      <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
    2. 原因我不知道,网上说是没有导包,但我的确是导入了。我现在猜测是由于这个包eclipse没有把我从桌面上导入的包加入到项目中
    3. 解决
      1. 我将 jstl-1.2.jar拷到web-inf_lib_中,这样就能保证一定会部署到服务器上

错误二

  1. 我在添加记住账户名功能时,功能逻辑上没啥问题,但是在最后一步中,我通过getCookies获取的cookies,取到后将cookie中包含的账户名输出出来,但是结果始终是不对。
  2. 我当时的解决方式是:从网上重找了一个代码,不去琢磨我哪错了
  3. 现在意识到了我哪错了:我和人家的代码对比,少了一个判断if(c[i].getName().equals("manager"))。错误的原因是我认为浏览器中就一个cookie,因为我就给他设置了一个,但是我忘记了还有其它一个cookie会自动,或者框架中会设置。少了这个判断,永远取到的都是最后一个cookie。
  4. 参考:servlet方式通过Cookie记住登录时的用户名和密码 - 映日残阳 - 博客园
  5. 完整代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //el表达式
    String names="";
    String pwd="";
    //取出Cookie
    Cookie [] c=request.getCookies();
    for(int i=0;i<c.length;i++){
    if(c[i].getName().equals("manager")){
    //存着数据
    names=c[i].getValue();

    //再一次的存起来(备用)
    request.setAttribute("xingming",names);
    }
    }

错误三:

出现这个错误真的是该打,有脑子没脑子
连servlet的基本执行过程都反应不过来。
下面是错误的:

下面是正确的: