一、jsp

作者: lifeline张 | 来源:发表于2018-07-23 10:46 被阅读0次

    1、页面之间的传值方式有四种:

    • url后面直接跟值
    • form表单
    • cookie
    • session

    2、jsp中的java代码要写在<%%>中

    3、全局变量的格式是<%!%>,但是后面学习的jsp:usebean标签也可以用来创建整个页面的对象。

    4、jsp页面的out对象可以用来在java代码中去页面上显示东西,在后期显示是跟java代码分离的,所以这个out对象可以用来做测试。

    5、获取页面上的复选框数据要用getParameterValue方法,这个返回的是一个String数组。

    6、request.getParameter的一系列重写方法获取的到的数据几乎都跟字符串相关,是字符串或者字符串数组别的比较少用;request.getAttribute获得的是一个对象。

    7、getParameter与getAttribute的区别:getAttribute表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为Object对象类型 ;getParameter表示接收参数,参数为页面提交的参数,包括:表单提交的参数、URL重写(就是xxx?id=1中的id)传的参数等,因此这个并没有设置参数的方法(没有setParameter),而且接收参数返回的不是Object,而是String类型。

    8、在页面中常用的request是HttpServletRequest 对象。HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。

    9、表单提交的时候采用get方式的话,是有长度限制的。

    10、request.setCharacterEncoding("utf-8"):是设置从request中取的的值或从数据库中取出的值。指定后可以通过getParameter获取正确的字符串,如果不指定,默认使用iso8859-1编码。值得注意的是在执行setCharacterEncoding()之前,不能执行任何getParameter()。而且,该指定只对POST方法有效,对GET方法无效。分析原因,应该是在执行第一个getParameter()的时候,Java将会按照编码分析所有的提交内容,而后续的getParameter()不再进行分析,所以setCharacterEncoding()无效。而对于GET方法提交表单是,提交的内容在URL中,一开始就已经按照编码分析提交内容,setCharacterEncoding()自然就无效。

    11、Eclipse中部署了web项目后,在jtomcat中找不到怎么办?
    https://blog.csdn.net/huangyuhuangyu/article/details/73432709

    12、pageEncoding是jsp文件本身的编码;contentType的charset是指服务器发送给客户端时的内容编码。
    则客户端访问一个JSP页面时可以分为如下三步:

    • 服务器通过pageEncoding可以知道当前JSP所用编码,然后将JSP页面翻译为Java文件,并转码成UTF-8.
    • JVM将UTF-8的Java文件编译成.class文件
    • 服务器通过.class文件执行结果转换成contentType所指定的编码格式,并输出至客户端。
      还有要注意的就是pageEncoding 和 contentType的默认值都是ISO-8859-1,但是如果设置其中任意一个,另外一个也会与其值相同。

    二、转发与重定向

    1、转发是request对象的,重定向是response对象的。转发必须要用forward方法。

    2、session的作用域是一次会话,只要你设置了之后,在这个会话中就可以一直调用里面的值了。所以session的最主要作用是用来保存用户的登录状态,具体思路是:只要登录成功了就把用户名保存到session中,这样再访问网页的时候先去session里面拿值,看有没有,如果有的话则直接显示就好了,否则就显示需要登录。

    3、session的清除数据的方法:

    • 设置会话失效:session.invalidate();
    • 移除会话的属性:removeAttribute(String name);
    • 设置会话过期时间:setMaxInactiveInterval(int interval);
    • 在配置文件中设置有效时间

    第二条和第三条配合起来的话就可以做到在服务器端判断用户的登录状态,然后根据状态来判断用户是否可以进行相应的操作了。

    4、cookie需要new,并且在new的时候放值进去,但是只能放字符串。但是可以采用字符串拼接的方式放一组信息进去。

    5、cookie的最主要作用是在客户端保存数据,跟session配合使用效果更佳。具体示例见第二片。

    6、application计数器,可以用来统计总访问次数。只要访问过这个页面,不管是不是同一个用户,计数器都会增加。

    相关文章

      网友评论

          本文标题:一、jsp

          本文链接:https://www.haomeiwen.com/subject/tbydmftx.html