zoukankan      html  css  js  c++  java
  • 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)重定向之后,浏览器地址栏的地址会变成重定向地址。

  • 相关阅读:
    python Database Poll for SQL SERVER
    SQLAlchemy表操作和增删改查
    flask动态url规则
    flask配置管理
    一个Flask运行分析
    Function Set in OPEN CASCADE
    Happy New Year 2016
    Apply Newton Method to Find Extrema in OPEN CASCADE
    OPEN CASCADE Multiple Variable Function
    OPEN CASCADE Gauss Least Square
  • 原文地址:https://www.cnblogs.com/wcf6676/p/4967936.html
Copyright © 2011-2022 走看看