web的一些基本知识和使用

servlet

Servlet = Server + Applet

        服务   小程序  基于java的线程实现

Servlet的init:该方法只执行一次,

service: 每次请求都执行,

destory:在停止服务器时执行用于释放资源。

生命周期:

创建、初始化(init)、服务(service)、销毁(destory)

  • Servlet 初始化后调用 init () 方法。
  • Servlet 调用 service() 方法来处理客户端的请求。
  • Servlet 销毁前调用 destroy() 方法。

核心的Service的方法(请求、响应)

HttpServletRequest: req

HttpServletResponse: resp

作用

请求

响应

方法

getParamter(name): 根据name获取单个值

getParamterValues(name): 根据name获取多个值。

getParamterMap(name):根据name获取多个值。(基于对象属性)

getPart():上传

setCharacterEncoding(“utf-8”): 请求编码

setCharacterEncoding(“utf-8”)响应编码

setContentType(“text/html;charset=utf-8”): 响应头类型和编码

Servlet的配置:xml和annotation

Xml:

 <servlet>

     <servlet-name>

     <serlvet-class>

 </servlet>

 <servlet-mapping>

      <servlet-name>

      <url-pattern>/

 </servlet-mapping>

注解: @WebServlet( urlPatterns = {“/**”,”/**”})

JSP

JSP: 是英文 Java Server Page ---->Java  服务器 页面(动态页面:实现数据的交互)

Jsp的语法:

1:<%   java代码  %>(俗称:jsp小脚本:java代码)

2:<%!  声明语句 %>

3:<%= 表达式 %>

JSP的page指令

名称

作用

说明

ContentType

设置服务器给jsp的响应编码

服务器给jsp

PageEncoding

页面请求的编码方式

Jsp给服务器的

Language

设置当前页面动态语言

目前只有java

Import

导包

可以有多个

ErrorPage

如果出现异常则要跳转到的页面

配置局部异常,jsp页面的异常

isErrorPage

True:表示该页面进行错误处理

Buffer

设置页面缓存大小,默认

默认为8kb

Autoflush

自动刷新,默认ture

IsELIgonre

是否或略el表达式 默认false:支持

IsThreadSeal

是否是线程安全 默认是false

Session

是否支持会话:session 默认true

注释

Jsp的注释: <%-- 注释 --%>  特点:不会进行网络传输。

 Html: <!--  注释--> 特点:会进行网络传输(垃圾代码)

 JSP的内置对象9个

1:pageContext

2:request

3:session

4:application

5:out

6:config

7:exception(异常的处理方式: 1:抛出到页面  2:记录到日志文件)

8:page

9:response

 JSP四个作用域对象

PageContext  request session application: (作用范围:从小到大)

pageContext: 只在当前页面生效(private)

request:  针对一个请求(默认) 如果一个新的请求,则不能获取数据。

Session: 针对一个会话(可以是多个请求: public)

Application:应用程序(全局:static)

 

 转发和重定向(重点)

区别

转发

重定向

方法

Req.getRequestDispatcher().forward(“本地资源或当前项目”)

Resp.sendRedirect(“url:可以内部也可以是外部”)

对象

Request(请求)

Response(响应)

次数

一次

多次

服务器内部

客户端

传递数据

可以

不能

地址栏

不会变化(安全)

会变化(不安全)

JSTL

作用:

1: 简化业务逻辑

2; 与html”无缝集成”

 <%-- 迭代:必须放在作用域中 --%>
         <c:forEach items="${sss}" var="str">
                  ${str}<br>
         </c:forEach>

<%---基本语法 --%> 
         <c:forEach begin="1" end="10" var="i">
              <font color='blue'>${i}</font>
         </c:forEach>

          <c:if test="${5>13}">
              ok
          </c:if>
            
           <c:choose>
            <c:when test="${5>13 }">
                好的
            </c:when>
            <c:otherwise>
                   不好        
            </c:otherwise>
         </c:choose>

会话和跟踪技术:(因为HTTP是个无状态的协议)

1:客户端:cookie(中文:曲奇)

2:服务器:session(会话)

会话:一个用户在访问web程序时,客户端与服务器的多次请求和响应的过程。

Session:保留用户在访问网站时的用户信息(跨页面的)

Session的创建是通过request(请求)对象获取的 getSeesion()

request.getSession(): 如果当前没有session则创建一个新的session,如果有则返回该session。

request.getSession(true);  如果当前没有session则创建一个新的session,如果有则返回该session。

request.getSession(false); 如果当前没有session则返回一个null,如果有则返回该session。

记住:不带参数的getSession()等效于getSession(true)

Session的有效期默认值是30分钟,我们可以通过web.xml进行修改和设置:(单位是分钟)

 <session-config>
        <session-timeout>5</session-timeout>
   </session-config>

Session:

保存数据到session中:setAttribute(key,Object)

获取 getAttribute(key)  ${key} ${sessionScope.key}

移除sesssion :     removeAttribute(key)

清空所有session

Filter(过滤器、拦截器)

Web组件中的Servlet有三个子组件:

1:Servlet: 作用:负责请求和响应(重点:了解执行过程)

2:Fiilter: 作用:进行拦截(相同的功能进行AOP)(重点:了解原理)

区别

Servlet

Filter

作用

请求和响应

过滤(筛选),抽取共性的代码

配置

@WebServlet(“/list”)

@WebFilter(“/list”)

执行时机

请求时

请求前

多个

无顺序:根据url

有顺序: xml: <filter-mapping>

        注解:根据名称的顺序

listener(监听器)

监听器的实现步骤:

1:创建类实现相应的域对象的监听器

2:重写相应的方法

3:配置web.xml 或:通过@WebListener

监听器的作用:

自动实现对域对象的创建、属性(创建、添加、修改和移除等)的操作。

作用域: pageContext request session application

监听器对:request session application

特点:自动执行

例如:自动实现日志的处理:

servlet、filter、listener区别 

区别

Servlet

Filter

Listener

功能

请求和响应

过滤

自动监听程序的运行

Annotation

@WebServlet(“/list”)

@WebFilter(/*)

@WebListener

Xml

<serlvet>

   <servlet-name>

   <servlet-class>

</servlet>

<serlvet-mapping>

<filter>

  name

  Class

</filter>

<filter-mapping>

<listener>

调用方式

根据ulr

自动:根据过滤规则

自动调用

传值:

get和post区别

get和post ---> HttpServlet : doGet 和doPost

doGet:处理get请求: 除了method= post的所有请求

doPost:处理<form method=’post’>

Service: 方法是javax.servlet.Servlet接口定义的方法(处理所有请求)

Get如何传值:?号传值:   url?参数1=值&参数2=值&....

区别

Get

Post

传值方式

地址栏:明文

表单域:隐藏

安全

数据量

最大是2M

浏览器大于get方式

过滤器

No

Yes

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值