zoukankan      html  css  js  c++  java
  • Java Web总结

    一、地址

    客户端路径和服务端路径

    表单:<form action="路径"></form>

    超链接:<a href="路径">xxx</a>

    图片:<img src="路径"/>

    重定向:response.sendRedirect("路径")

    请求转发:request.getQuestDispatcher("路径").forward(request,response)

    请求包含:request.getQuestDisPatcher("路径").include(request,response);

    ServletContext 获取资源的相关方法

    servletContext.getRealPath("路径")//根据文件的相对路径获取绝对路径

    servletContext.getResourceAsStream("路径")//根据文件的相对路径获取文件的输入流

    在web.xml文件中配置的Servlet的访问路径

    <url-pattern>路径</url-pattern>

    客户端路径:客户端访问服务器资源的时候的路径 

    1、表单

    在程序中的书写方式:http://127.0.0.1:8888/day11/AServlet

    服务器主机名/端口号/项目名/资源名

    2、超链接

    <a href="路径">xxx</a>

    3、图片

    <img src="/day11/images/stu,jpg"/>

    4.重定向

    response.sendRedirect("/day11/AServlet");

    服务端路径:

    1、请求转发

    2、请求包含

    3、在ServletContext中与资源相关的方法

      servletContext.getRealPath("/WEB-INF/web.xml")//根据文件的相对路径获取绝对路径

    4、在web.xml文件中配置的Servlet的访问路径

    <url-pattern>/AServlet</url-pattern>

    二、编码

    从客户端、浏览器向服务器发送请求数据或从服务器向客户端发送响应数据,在底层都是以字节的形式发送的,这就需要将字符数据转换成字节,这个过程叫做编码。

    在客户端、浏览器或者服务器端接收到字节数据后,需要把字节组装成字符,这个过程叫做解码。

    无论编码和解码都需要用到码表。常用的编码解码方式有GBK gb2312 ISO-8859-1

    服务器默认的编码和解码都是ISO-8859-1 

    产生乱码的根源是编码和解码的方式不一致,只要编码和解码的方式一致就不会产生乱码。

    三、请求编码

    (1)在页面中发出请求

    用户在页面上输入的数据的编码是由页面本身的编码决定的

    (2)get请求解码

    服务器默认的解码方式为ISO-8859-1 ,不支持中文。

    解决乱码需要两步:一是回退为字节数据 二是重新编码

    AServlet.java

    package cn.edu.aynu.rjxy.servlet;
    
    import java.io.IOException;
    import java.util.ArrayList;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class AServlet extends HttpServlet {
        /*
         * Post请求
         *
         */
        
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
             /*post请求的解码处理   乱码出现的根源是:编码方式和解码方式不一致。
              * tomcat服务器默认的解码方式是ISO-8859-1不支持中文。由于post请求
              * 有请求体,请求参数是放在请求体中的,设置请求体的解码方式,需要调用
              * 方法request.setCharacterEncoding("UTF-8");支持中文
              */
            request.setCharacterEncoding("UTF-8");
            //响应输出流的编码方式是UTF-8 客户端、浏览器解码方式也为UTF-8
            response.setContentType("text/html;charset=utf-8");
            //根据参数名获取参数值
            String username = request.getParameter("username");
            String sex = request.getParameter("sex");
            String select = request.getParameter("select");
            //根据参数名获取多个参数值
            String[] hobby = request.getParameterValues("hobby");
            String experiment = request.getParameter("experiment");
            //输入到界面上
            response.getWriter().print("姓名:"+username+"<br>");
            response.getWriter().print("性别:"+sex+"<br>");
            response.getWriter().print("学历:"+select+"<br>");
            //创建一个数组用于存放爱好的值
            ArrayList hobbies = new ArrayList();
            //数组的遍历
            for (int i = 0; i < hobby.length; i++) {
                hobbies.add(hobby[i]);
            }
            response.getWriter().print("爱好:"+hobbies+"<br>");
            response.getWriter().print("工作经历:"+experiment+"<br>");
        }
    
    }

    a.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'a.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
        <form action="/day11/AServlet" method="post">
            姓名:<input type="text" name="username"><br>
            性别:<input type="radio" name="sex" value="male"><input type="radio" name="sex" value="female"><br>
            学历:<select name="select">
                    <option selected="selected" value="college">本科</option>
                    <option value="junior">大专</option>
                    <option value="master">硕士</option>
                    <option value="doctor">博士</option>
                </select><br>
            爱好:<input type="checkbox" name="hobby" value="sing">唱歌
                <input type="checkbox" name="hobby" value="dance">跳舞
                <input type="checkbox" name="hobby" value="read">阅读
                <input type="checkbox" name="hobby" value="run">跑步<br>
            工作经历:<br>
                <textarea name="experiment" rows="5" cols="35">请认真写下您的工作经历</textarea><br>
                <input type="submit" value="提交">
        </form>
      </body>
    </html>
  • 相关阅读:
    8.移动和重命名文件
    7.复制文件和目录
    22.变基
    21.拉取&删除远程分支
    程序员必备课程——网络编程入门
    正则表达式——Java程序员懂你
    编程语言的基础——搞定JavaIO
    需加装饰——装饰模式
    结合提供者模式解析Jenkins源码国际化的实现
    算法族的集中管理——策略模式
  • 原文地址:https://www.cnblogs.com/kangyaping/p/5915588.html
Copyright © 2011-2022 走看看