zoukankan      html  css  js  c++  java
  • JSP页面元素,及JSP九大内置对象之二out和request

    一、JSP页面元素
    1、脚本Scriptlet
     <1>  <%
              用于定义局部变量,书写常规的java代码
          %>
     <2><%!
              用于定义全局变量,定义方法
        %>
     <3><%=输出表达式%>   
     要想回车:加<br/>;
     在标签里写HTML代码  ,可以有效果

     


     2、指令
    如  page指令
      <%@ page ....%>
      page指定的属性:
      language:jsp页面使用的脚本语言
      import:导入类或包
      pageEncoding:jsp文件自身编码(当将jsp转换为java时所用的编码)
      contentType:浏览器解析jsp的编码,一般与pageEncoding的编码保持一致
    3、注释
     html注释:<!-- -->  
     java注释://或/*.........*/
     jsp注释:<%-- --%>
     其中,HTML注释可以被客户通过浏览器查看原码看到
     二、jsp九大内置对象(自带的,不需要new就能使用的对象)
     1、out:向客户端输出内容
     2、request:请求对象,存储客户端(浏览器)向服务端(Tomcat/jsp)发送的请求信息
     request对象的常见方法
     <1>String getParameter(String name):根据请求的字段名key,返回字段值value
     <2>String [] getParameterValues(String name):根据请求的字段名key,返回多个字段值value  (常见的有CheckBox<多选按钮>)
     <3>void setCharacterEncoding("编码格式,如utf-8"):设置post方式请求编码,如不设置,以Tomcat默认为准(Tomcat7及以前,默认为iso-8859-1,Tomcat8及以后,默认为utf-8)
     <4>getRequestDispatcher(b.jsp).forword(request,response):请求转发的跳转页面  从A到B
     <5>ServletContext getServletContext():获取项目的ServletContext对象

    修改eclispe中jsp页面的默认编码:
    打开eclipse,找到windows-->preference
    进入preference后点击Web
    在Web下选择jsp files
    在右边找到encoding修改为自己希望的编码


     实例:注册

    register.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
           <form action="show.jsp" method="get">
                          用户名<input type="text" name="uname"><br/>
                          密码<input type="password" name="upwd"><br/>
                          年龄<input type="text" name="uage"><br/>
                          爱好<br/>
                <input type="checkbox" name="uhobbies" value="篮球">篮球
                <input type="checkbox" name="uhobbies" value="足球">足球
                <input type="checkbox" name="uhobbies" value="乒乓球">乒乓球
                <input type="submit" value="注册">
                <br/>
           </form>
    </body>
    </html>

     show.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
             <%//设置编码
                 request.setCharacterEncoding("utf-8");
                 String name=request.getParameter("uname");
                 String pwd=request.getParameter("upwd");
                 int age=Integer.parseInt(request.getParameter("uage"));
                 String [] hobbies=request.getParameterValues("uhobbies");
             %>
                    注册成功,信息如下:<br/>
                    姓名:<%=name %><br/>
                    密码:<%=pwd %><br/>
                    年龄:<%=age %><br/>
                    爱好:<br/>
                    
                    <%
                       if(hobbies!=null)
                       {
                          for(String hobby:hobbies)
                          {
                              out.print(hobby+"&nbsp;");
                              //"&nbsp"为空格
                          }
                       }
                       else
                       {
                           out.print("无");
                       }
                    %>
    </body>
    </html>

     下面是运行截图

     

    get提交方式:method="get"、地址栏、超链接(<a herf="xxx">)请求方式,都属于get提交方式
     下面是地址栏方式:
     http://localhost:8080/Myjsp/show.jsp?uname=%E5%BC%A0%E5%BF%97%E4%BC%9F&upwd=123456&uage=19&uhobbies=%E7%AF%AE%E7%90%83&uhobbies=%E8%B6%B3%E7%90%83&uhobbies=%E4%B9%92%E4%B9%93%E7%90%83
     get和post提交方式的区别
     <1> get方式在地址栏显示 请求信息(但是地址栏能够容纳的信息有限,4-5kb;如果请求文件出现音频、视频等大文件,会报错);post就不会显示
     <2> 文件上传操作,必须用post
     注:一般推荐使用post
     如get提交方式出现乱码
     a.统一每一个变量的编码
     new String(旧编码,新编码)
     name=new String(name.getBytes("iso-8859-1","utf-8"));
     缺点:比较麻烦
     b.修改server.xml,一次性的修改Tomcat的默认get提交的编码
     在修改端口的标签处,加上一句URIEncoding="utf-8";
     在Servers文件的server.xml中,修改,因为不同的eclispe版本不同,修改方式不同,故此处不做演示。

    c.直接装个Tomcat8以上就好了
     post方式出现乱码
     只需在调用时加上request.setCharacterEncoding("utf-8");


    困扰我多年的乱码问题终于解决了。。哈哈哈哈。

  • 相关阅读:
    ext2 / ext3 结构分析
    怎么解决TortoiseSVN文件夹图标不显示?
    CVS Update后,p u 各代表什么意思? 颜色代表什么意思?
    Oracle Purge和drop的区别
    oracle怎样删除回收站里面的表
    oracle 查询所有表 和视图表
    PLSQL 数据中去掉 字段有空格 回车 换行
    plsql update 字段值 前面增加 字符
    function 通过商品编号 获取商品名称
    远程连接后 Xshell 怎么显示桌面 命令
  • 原文地址:https://www.cnblogs.com/yeyueweiliang/p/12192257.html
Copyright © 2011-2022 走看看