• Servlet学习笔记


    什么是B/S架构

                  客户端使用浏览器,服务端使用web浏览器,客户端跟服务器之间使用HTTP协议进行通讯。

    2)优点

    ①客户端不需要单独安装(因为使用浏览器);C/S架构比较麻烦的是需要单独安装每个客户端,并且一旦客户端版本发生改变,就需要再次安装。

    ②开发相对简单;C/S架构需要我们分别在,客户端和服务器端编写相应的通信处理模块和自定义协议,而B/S架构使用标准的HTTP协议(即不再需要自定义协议),而且浏览器与Web服务器已经包含了相应的通信模块了。

    什么是Tomcat

    Tomcat本身是一个Servlet容器,即可以提供Servlet运行环境的一个程序,但是Tomcat还提供了Web服务器所具有的所有功能,所以我们也称Tomcat是一个Web服务器。Tomcat的默认端口是8080。

    常见错误及解决方式

    1)404:是一个状态码(是一个三位数字,由服务器发送给浏览器,告诉浏览器是否正确处理了请求),404的意思是说:服务器依据请求资源路径,找不到对应的资源。

       解决:①依据http://ip:port/appname/url-pattern检查你的请求地址是否正确。

                          ②仔细检查web.xml,特别要注意servlet-name是否一致。

    2)500:服务器处理出错,一般是因为程序运行出错。

       解决:①检查程序的代码,比如:是否继承。

                          ②检查web.xml,类名要填写正确。

    3)405:服务器找不到对应的service方法。

       解决:检查service方法的签名(方法名、参数类型、返回类型、异常类型)。

    什么是HTTP协议

    HTTP(Hypertext transport protocol)是超文本传输协议。是一种应用层协议,由W3C制定,它定义了浏览器(或者其他客户端)与Web服务器之间通讯的过程及数据格式。

    通讯的过程

    step1:浏览器建立与Web服务器之间的连接(Socket)。

    step2:浏览器要将请求数据打包(请求数据包),然后发送给Web服务器。

    step3:Web服务器将处理结果打包(响应数据包),然后发送给浏览器。

    step4:Web服务器关闭连接。

    get请求与post请求

    1)哪些情况下,浏览器会使用get方式发请求:

    ①直接在浏览器地址输入某个地址。              ②点击链接地址。

    ③表单默认的提交方法:<form method="get(默认)/post">。

    2)哪些情况下,浏览器会用post方法发请求:

    ①设置表单的method属性值为“post”。

    3)get请求的特点:

    ①get请求会将请求参数添加到请求资源路径的后面,因为请求行存放的数据大小有限(也就是地址栏的最长字节数),所以get请求只能提交少量的数据。

    ②get请求会将请求参数显示在浏览器地址栏,不安全(比如,路由器会记录整个地址)。

    4)post请求的特点:

    ①post请求会将请求参数添加到实体内容里面,所以,可以提交大量的数据。

    ②post请求不会将请求参数显示在浏览器地址栏,相对安全一些。但是,post请求并不会对请求参数进行加密处理。用HTTPS协议进行加密处理。

    如何读取请求参数

    1)方法一:String request.getParameter(String paraName);

    ①如果paraName(即参数名称)与实际的参数名称不一致,会获得null(不报错)。

    ②在使用表单提交数据时,如果用户没有填写任何的值,会获得空字符串 "" 。

    2)方法二:String[] request.getParameterValues(String paraName);

    ①当有多个参数且名称相同时,使用该方法。比如:?city=bj&city=cs&city=wh

    u  注意事项:getParameterValues方法也可用于只有一个参数的情况。

    访问数据库(MySql)

    1)使用MySql数据库

    ①登录MySql:mysql -uroot;//登录mysql,使用root用户权限

    ②查看当前所有的数据库:show databases;

    ③创建一个新的数据库:create database db_chang default character set utf8;//创建db_chang数据库,默认是用utf8编码集(不能写减号 - )

    ④使用某个数据库:use db_chang;

    ⑤查看当前数据库有哪些表:show tables;      drop table tablname;//删表

    异常:IllegalStateException

    出现如下错误可以不用理会,是因为Tomcat热部署造成的,重新手动部署一下即可

    Servlet如何输出中文

    需要调用:response.setContentType("text/html;charset=utf-8");其中charset=utf-8表示:

    1)用来指定编码格式,只要支持中文即可,比如也可设置为charset=gbk。

    2)作用两个:①生成一个content-type消息头,告诉浏览器返回的数据类型和编码格式。

                      ②服务器在输出时,会使用指定的编码格式进行编码。

    如果表单有中文参数值,也需要注意编码问题

    因为,当表单提交的时候,浏览器会对表单中的数据进行编码(会使用打开表单时的编码格式进行编码),而服务器默认情况下,会使用ISO-8859-1去解码,所以,会产生乱码问题。

    1)解决方式一:

    step1:先保证表单所在的页面按照指定的编码格式打开。即:

    <meta http-equiv="content-type" content="text/html;charset=utf-8" />已是一种规范(模拟content-type消息头,告诉浏览器正在解析的数据类型和编码格式)。

    step2:调用request.setCharacterEncoding("utf-8");意思是告诉服务器,使用指定的编码格式进行解码。

    u  注意事项:该方法只能用于"post"请求!注意代码放置顺序,在

                 request.getParameter()方法前。

    2)解决方式二:

    step1:同方式一的第一步。

    step2:使用new String(str.getBytes("iso-8859-1"),"utf-8");

    如何重定向

    使用response.sendRedirect(String url);

    两个特点

    1)重定向的地址是任意的(前提要存在否则报404)。

    2)重定向之后,浏览器地址栏的地址会变成重定向地址。

  • 相关阅读:
    NERDTree 快捷键辑录
    linux 自动登录脚本
    INSERT INTO .. ON DUPLICATE KEY更新多行记录
    Linux环境PHP7.0安装
    SVN常用命令
    Linux下查看文件和文件夹大小
    Cacti安装详细步骤
    linux回到上次目录与历史命令查找快捷方式
    shell的if else 以及大于,小于等逻辑表达式
    Nginx_Lua
  • 原文地址:https://www.cnblogs.com/wcf6676/p/4967936.html
Copyright © 2020-2023  润新知