jsp总结

第一(---->).response和request的区别:
1.response,重定向访问,可以访问项目之外的资源,暂时不可以携带参数,地址栏有变化,两次请求
2.request,转发,请求项目内的资源,可携带参数,地址栏不变化,一次请求。
3.访问的实例:
<%
        /* request.setCharacterEncoding("utf-8");//post乱码解决 */
        String username=request.getParameter("username");
        /* session.setAttribute("username",username); */
        /* username=new String(username.getBytes("iso-8859-1"),"utf-8");//get解决方案 */
        String password=request.getParameter("password");
        String[] hobbies=request.getParameterValues("hobby");
        for(int i=0;i<hobbies.length;i++){
            System.out.println(hobbies[i]);
        }
        System.out.println(username+"------"+password);
        if(username.equals("admin")&&password.equals("admin")){
            request.setAttribute("username",username);
            request.getRequestDispatcher("main.jsp").forward(request, response);//转发请求项目内的资源,可携带参数,地址兰不变化,一次请求
        }else{
            request.setAttribute("msg", "用户名或者密码错误");
         request.getRequestDispatcher("login.jsp").forward(request,response);
            /* response.sendRedirect("login.jsp");//重定向可以访问项目外的,不可携带参数,地址栏变化,两次请求 */
            
        }
    %>
第二(--->).解决乱码问题:
1.解决post乱码问题:
request.setCharacterEncoding("utf-8");
2.解决get乱码问题:
例如:客户端输入中文用户名:
String username=request.getParameter("username");
username=new String(username.getBytes("iso-8859-1"),"utf-8");

第三(---->).表单跳转页面
1.实例:<body>内的内容:
<form action="doLogin.jsp" method="get">
<div>
<% String msg=(String)request.getAttribute("msg");
    if(msg!=null){
%>
<%=msg %>
<% }%>
</div>
    <table>
        <tr><td>用户名:</td>
        <td><input type="text" id="username" name="username"></td>
        </tr>
        <tr><td>密码:</td>
        <td><input type="password" id="password" name="password"></td>
        </tr>
        <tr><td>爱好</td><td><input type="checkbox" name="hobby" value="running">跑步
        <input type="checkbox" name="hobby" value="游泳">游泳
        <input type="checkbox" name="hobby" value="basketball">篮球
        <input type="checkbox" name="hobby" value="reading">读书
        </td></tr>
        <tr align="center">
        <td colspan="2"><input type="submit" value="注册"><input type="reset" value="重置">
        </td>
        </tr>
    </table>
    </form>

第四(----->).application
1.全局对象,只要服务器不关每访问一次它就加1
<%
Integer count=(Integer)application.getAttribute("count");
    if(count==null){
        count=1;
    }else{
        count++;
    }
    application.setAttribute("count", count);


%>
网站访问人数<%=count %>

第五(------>).session
1.session对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止

第六(----->).Cookie
1.保存信息在本地,下次登录直接记住登录信息
    /* Cookie cookie=new Cookie("username",username); */
    Cookie cookie=new Cookie("username",URLEncoder.encode(username,"UTF-8"));//解决中文问题,进行加密
    cookie.setMaxAge(50);//设置清除时间
    response.addCookie(cookie);
    response.sendRedirect("index.jsp");
客户端接收
Cookie[] cookies=request.getCookies();
String username2="";
for(int i=0;i<cookies.length;i++){
    if(cookies[i].getName().equals("username")){
        /* username2=cookies[i].getValue(); */
        username2=URLDecoder.decode(cookies[i].getValue(),"UTF-8");//中文解密
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值