2021/08/12笔记

首先,今天是博主生日!

我们于2021/08/12 的学习目标是:Servlet和JSP,核心任务为:

1、学习技术:

1)、Servlet实现文件上传与下载

2)、Servlet中Cookie的实现

3)、JSP的基础语法

4)、JSP中的注释

5)、Scriptlet

6)、JSP的指令标签

7)、JSP的四大域对象

8)、EL表达式的使用

2、文档总结

1)、Servlet实现文件上传与下载

文件上传

注意:

需要表单做输入

请求方式为POST

form标签的enctype属性必须设为"multipart/form-data"

前端JSP页面设计:

<form method="post" action="uploadServlet" enctype="multipart/form-data">

   <input type="file" name="myfile">

   <button type="submit">提交</button>

</form>

后台Servlet实现:

使用注解 @MultipartConfig 将一个Servlet标识为支持文件上传。Servlet将multipart/form-data的POST请求封装成Part,通过Part对上传文件进行操作

import javax.servlet.annotation.MultipartConfig;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.Part;

import java.io.IOException;



@WebServlet("/upload")

@MultipartConfig

public class up extends HttpServlet {

    @Override

    public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding("utf-8");

        resp.setContentType("text/html;charset=utf-8");

        //获取参数

        Part part = req.getPart("myFile");//获取文件上传对象

        //通过part对象,获取上传文件名

        String fileName = part.getSubmittedFileName();

        //获取文件的绝对路径

        String realPath = req.getServletContext().getRealPath("upload");

        part.write(realPath+fileName);

    }

}

文件下载

可以通过a标签定义文件的路径实现下载

<!-- 当超链接遇到浏览器不识别的资源时,会自动下载 -->

<a href="CompressedPackage.zip">超链接下载</a>

指定 download 属性下载

<!-- 当超链接遇到浏览器识别的资源时,默认不会下载。通过添加download属性可进行下载 -->

<a href="MVI_1068.MP4" download>超链接下载</a>

添加了download属性后,在浏览器点击链接会直接下载文件而不是在浏览器中打开。

download属性可不赋值,会自动使用默认文件名。

如果设置了download属性的值,则使用设置的值作文件名。

2)、Servlet中Cookie的实现

添加cookie:

package com.sdf.servlet;



import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;



@WebServlet("/cookie_test")

public class HelloCookie extends HttpServlet {



    @Override

    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //创建Cookie

        Cookie cookie=new Cookie("name","content");

        //持久化

         //持续时间以秒为单位

         //负数代表跟随浏览器会话,浏览器关闭即删除

         //0代表删除cookie

        cookie.setMaxAge(7*24*60*60);

        //和项目根目录绑定

        cookie.setPath("/");

        //响应到浏览器

        resp.addCookie(cookie);

    }

}

3)、JSP基础

JSP,即Java Server Page SUN公司提供的动态网页编程技术,是Java Web服务器端的动态资源。

JSP允许在页面中嵌套Java代码,同时使用HTML语言进行网页设计。

其实JSP就是一个Servlet,当我们第一次访问JSP时,JSP引擎都会将这个JSP翻译成一个Servlet,这个文件存放在tomcat(源码目录)中的work目录中。

4)、JSP中的注释

在JSP中支持两种注释的语法操作

显性注释:客户端能看见

从HTML风格继承而来

<!-- HTML风格的注释 -->

隐式注释:客户端无法看见

//单行注释
/*

   多行注释

*/
<%-- JSP注释 --%>

5)、Scriptlet

在JSP中最重要的部分就是Scriptlet(脚本小程序),所有嵌入在HTML代码中的Java程序

在JSP中一共有三种Scriptlet方法:

<% %>

Java脚本段,可以定义局部变量、编写语句

<%!   %>

声明,可以定义全局(成员)变量、方法、类

<%=   %>

表达式,数据的一个变量或具体内容Scriptlet

6)、JSP的指令标签

使用包含操作,可以将一些重复的代码包含进来继续使用,从正常的页面组成来看,有时可能分为几个区域。而其中的一些区域可能是一直不需要改变的,改变的就其中的一个具体内容区域。现在有两种方法可以实现上述功能。

方法一:在每个 JSP 页面(HTML)都包含工具栏、头部信息、尾部信息、具体内容

方法二:将工具栏、头部信息、尾部信息都分成各个独立的文件,使用的时候直接导入

很明显,第二种方法比第一种更好,第一种会存在很多重复的代码,并且修改很不方便,在 JSP 中如果要想实现包含的操作,有两种做法:静态包含、动态包含,静态包含使用 include 指令即可,动态包含则需要使用 include 动作标签。

7)、JSP的四大域对象

四种属性范围:

pageContext 只在一个页面中保存属性,跳转之后无效

request 只在一次请求中保存,服务器跳转后依然有效

session 在一次会话范围中,无论何种跳转都可以使用

application 在整个服务器上保存

8)、EL表达式的使用

${expression}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值