JavaWeb

JavaWeb

ArrayList和treeset

封装

Servlet

Servlet 是什么?

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

Servlet 有以下几点优势:

  • 性能明显更好。
  • Servlet 在 Web 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。
  • Servlet 是独立于平台的,因为它们是用 Java 编写的。
  • 服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。
  • Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。

servlet是用java语言编写的服务器端小程序

  • 继承HttpServlet

  • 覆盖重写doGet和doPost

Servlet 生命周期

Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:

  • Servlet 初始化后调用 init () 方法。
  • Servlet 调用 service() 方法来处理客户端的请求。
  • Servlet 销毁前调用 destroy() 方法。
  • 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

init 方法的定义如下:

public void init() throws ServletException {
  // 初始化代码...
}

service() 方法

public void service(ServletRequest request, 
                    ServletResponse response) 
      throws ServletException, IOException{
}

doGet() 方法

GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。

public void doGet(HttpServletRequest request,
                  HttpServletResponse response)
    throws ServletException, IOException {
    // Servlet 代码
}

doPost() 方法

POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。

public void doPost(HttpServletRequest request,
                   HttpServletResponse response)
    throws ServletException, IOException {
    // Servlet 代码
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">


    注册

    <servlet>
        <servlet-name>myServlet</servlet-name>
        <servlet-class>com.chen.servlet.Demo</servlet-class>
        <init-param>
            <param-name>user></param-name>
            <param-value>chen</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>myServlet</servlet-name>
        <url-pattern>/my</url-pattern>
    </servlet-mapping>

</web-app>

单例模式,线程不安全

JSP

四大作用域(一个容器)

  • page页面
  • request一次请求
  • session会话
  • application 服务器作用域

九大类型对象

  • page 当前页面
  • pageContext- - - ->page(相当于一个范围)
  • request 请求
  • session 会话
  • application 服务器
  • response 响应
  • out 输出
  • exception 异常
  • config 配置

jsp三大元素

  • 指令
  • 脚本
  • 动作

静态包含:各自编译

动态编译:先拼合,再编译

include:包含

forward:转发

plugin:插件

userBean:应用组件

setProperty:设置属性

getProperty:获取属性

jsp动作区分大小写

动作转发

include:原页面

forward:新页面

地址栏不变

主导权不一样

boolean 8

char 16

int 32

float 32

jsp:userBean

jsp表达式

EL表达式适用于一下情形

  • 静态文本
  • 标准标签和自定义标签
  • EL不能在脚本元素中使用

注:不能用于HTML页面中

EL表达式

pageScope

userBean具备的条件

  • 不能放在默认包下
  • 是一个公开的类
  • 含有无参的构造方法
  • 属性进行封装

静态包含:各自把各自的东西运行好,在结合起来

动态包含:先拼和,再编译

jsp页面的动作:转发,包含,跳转页面

转发和重定向的区别

相同点:都能进行跳转

不同点:

转发地址栏不变,重定向地址栏变化

转发速度快,重定向速度慢

转发是一次请求,重定向是二次请求

包含和转发的区别

相同:地址栏不变

不同点:

包含在原页面,转发页面不同

主导权不同

xml:可扩展标记语言,传输和存储数据

JSTL

去脚本化

  1. 通用标签: c:out c:set c:remove c:catch
  2. 条件标签: c:if c:choose c:when c:otherwise
  3. 循环标签: c:forTokens c:foreach
  4. url标签: c:import c:url c:redirect c:param

Filter

检测用户是否登录

设置缓存

处理中文问题

Listener

监听对象自身的创建和销毁

监控不同的对象实现什么样的接口

与Filter相似

被动调用

JSON

是一种数据交换格式

string,字符串,number,boolean,数组,对象

JSONArray.toJSON()

JSONArray.parse()

JQuery

servlet,filter

生命周期一样 (服务,过滤)

区别:servlet继承类,filter实现接口

  • init中servlet servlrtConfig FilterConfig
  • 方法:servlet调用service方法 filter中间服务dofilter
  • 方法参数不一样 filterchain
  • web.xml不一样

jscript函数库

  • 轻松获取页面
  • 轻松修改页面内容和展示样式
  • AJAX变得容易
  • 动画效果
  • 页面的处理事件更轻松

引入本地文件

cdn引入

基本选择器

  • id选择器
  • 类选择器
  • 标签选择器

层次选择器

  • 祖先后代选择器
  • 父子选择器
  • 隔壁选择器
  • 邻居选择器
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<script type="text/javascript" src="js/jquery-3.5.1.js"></script>
<script type="text/javascript" src="js/jquery-3.5.1.min.js"></script>
<html>
  <head>
    <title>Title</title>
  </head>
  <body>
  <ol>
    <li>A</li>
    <li id="b">B</li>
    <li>C</li>
  </ol>
  <ul>
    <li>a</li>
    <li>bc</li>
    <li>abc</li>
    <li>d</li>
  </ul>
  </body>
<script type="text/javascript">
$(function () {
    console.log($('*'))
    $('ol li').css("color",'red')  //祖先
    $('ol>li').css("color",'red')//父子
    $('b +li' ).css("color","red")  //隔壁选择器
    $('li:eq(3)').css("color","green")
    $('li:first').css("color","blue")//过滤选择器
    $('li:contains(bc)').css("color",'red')//按照文字过滤

})



</script>
</html>

$(“tr:even”):选取偶数位置的 元素

$(“tr:odd”):选取奇数位置的 元素

样式(css),属性(attr),事件(bind),动画

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="js/jquery-3.5.1.js"></script>
    <script type="text/javascript" src="js/jquery-3.5.1.min.js"></script>
</head>
<body>
<p id="p1">这是一个段落</p>
<h1>这是一个标题</h1>
<!--<button>点击</button>-->
<ol>
    <li id="a">a</li>
    <li id="b"><input id="test" value="chen"/></li>
    <br/>
    <li><input type="button" id="btn" value="点击"></li>
    <li>d</li>
</ol>
<ul>
    <li>A</li>
    <li>B</li>
    <li>C</li>
</ul>

<div>

</div>
</body>

<script type="text/javascript">
    //选择器
    /*$(function () {
        console.log($('*'))
        $('button').click(function () {
            $('#p1').hide()
        })

    })*/

    //隐藏
    /*$(function () {
        $('button').click(function () {
            $(this).hide()
        })
    })*/

    //触碰消失
    /*$(function () {
        $('button').mouseenter(function () {
            $(this).hide()
        })
    })*/

    //获取值,赋值
    /*$(function () {
       var demo= $('#test').val()
        console.log(demo)
    })*/

    //修改文本
    /* $(function () {
         var demo=$('#a').text('s')
         console.log(demo)
     })*/

    //样式
    /* $(function () {
        var color= $('#a').css('font-family','华文彩云');

        console.log(color)
     })*/

    //赋值
    /* $(function () {
         var demo = $('#test').attr("hidden", 'hidden');
         console.log(demo)
     })*/

    //绑定
    /* $(function () {
         $('#btn').bind("click", function () {
             alert('chen')
         })
     })*/

    //追加
    /* $(function () {
         $('#a').append('<li>m</li>')
         $('#a').prepend('<li>m</li>')
     })*/

    //克隆
    /*$(function () {
        var demo=$('ol').clone()
        $('div').append(demo)
    })*/

    //包裹
    /* $(function () {
       $('ol').wrap('<div></div>')
     })*/

    //清空
    /* $(function () {
         $('ul').remove()
         $('ul').empty()
     })*/

    //动画
    /*$(function () {
        $('#btn').bind('click',function () {
            $('ul').slideToggle()
        })
    })*/

    

</script>

Ajax

异步刷新

同步异步

async:false:关闭异步

eval(“(“+res+“)”):变为对象
on () {
var demo=$(‘ol’).clone()
$(‘div’).append(demo)
})*/

//包裹
/* $(function () {
   $('ol').wrap('<div></div>')
 })*/

//清空
/* $(function () {
     $('ul').remove()
     $('ul').empty()
 })*/

//动画
/*$(function () {
    $('#btn').bind('click',function () {
        $('ul').slideToggle()
    })
})*/
```

Ajax

异步刷新

同步异步

async:false:关闭异步

eval(“(“+res+“)”):变为对象

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值