JavaWeb-day01

文件上传与下载-day01&Tomcat配置 form表单一定要加entctype=“multipart/form-data”因为文件的上传与下载,我们经常需要使用,我们可以将IO流的代码封装成一个工具类。或许有的小伙伴会吐槽了,我都不知道Tomcat在哪里下载。Tomcat版本:apache-tomcat-8.5.82。但是这样还远远不够,仅仅是上面的代码会导致中文乱码。Apache file-upload组件上传。Servlet3.0之后提供了文件上传功能。注意注意事项:文件的下载路径,最后有个/经过上面四步,Tomcat就配置好了。... 阅读详情

服务器

什么是服务器?

简单来说,能够对外提供服务的电脑就叫服务器。
官方一点来说,就是下面这样:
服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性。

根据服务器所提供的服务,一般来说服务器都具备承担响应服务请求、承担服务、保障服务的能力。服务器作为电子设备,其内部的结构十分的复杂,但与普通的计算机内部结构相差不大,如:cpu、硬盘、内存,系统、系统总线等。

服务器的分类(扩展一点点)

  • 按网络规模划分
    1. 工作组级服务器
    2. 部门级服务器
    3. 企业级服务器
  • 按架构划分(芯片)
    1. CISC(复杂指令集)架构的服务器
    2. RISC(精简指令集)架构的服务器
  • 按用途划分
    1. 通用型服务器
    2. 专用型(或称"功能型")服务器
  • 按外观划分
    1. 台式服务器(工作站、塔式机)
    2. 机架式服务器
    3. 刀片服务器

这里就是简单的讲一下服务器,至于大家如果想详细了解服务器的话,请大家自行查询资料,谢谢理解。

网络通信的要素

网线

网线,一般由金属或玻璃制成,它可以用来在网络内传递信息。常用的网络电缆有三种:双绞线、同轴电缆和光纤电缆(光纤)。双绞线是由许多对线组成的数据传输线。它的特点是价格便宜,所以被广泛应用。双绞线是用来和RJ45水晶头相连的,有STP和UTP两种,常用的是UTP。

IP

IP:每台电脑在网络上的地址。

官方一点来说,就是下面这样:
IP指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。

设计IP的目的

设计IP的目的是提高网络的可扩展性:

  1. 解决互联网问题,实现大规模、异构网络的互联互通;
  2. 分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。
  3. 根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。

端口

端口:计算机数据的进出口。

"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。

端口分类

  1. 虚拟端口,虚拟端口指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。
  2. 物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。电话使用RJ11插口也属于物理端口的范畴。

协议

协议:传输中的数据包的格式

(网络)协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。

小小总结:网线简单来说,就是我们电脑需要从网上下载资源的时候,要的一个硬件物品,要知道最初是没有wifi的,当然现在大家可以用WiFi,但是它只是换了一种形式,去在网络中传递信息IP就是地址,试想没有地址,我怎么能找到具体的位置,去接收或者获取信息,端口,就是一个通道口,试想一下,如果没有通道口,信息如何传递,或者说,两个房子之间,假如两个房子都没有窗户,没有门,没有与外界传递物品的通道口,我们自然就无法实现传递信息,所以说,它是相当重要的。协议,就是我们为了传递信息而建立的规则,我们常说,没有规则不成方圆,其实,规则,我们也可以看成法律,我们作为一个遵纪守法的好公民,当然犯法是不可以的呀。

Tomcat

tomcat是什么?

tomcat是一个轻量级的服务器软件

我们常说的服务器,一般是指硬件。

tomcat下载

链接: tomcat下载
下载截图: Alt

tomcat作用

  1. 开启端口
  2. 监听端口

tomcat目录

    bin:存放可执行文件(重点)
	conf:配置文件(重点)
	lib:第3方依赖
	logs:日志(重点)
	temp:用来临时文件
	webapps:存放应用程序(重点)
	work:工作目录,程序运行时一些文件放在这个目录

目录截图:
Alt

tomcat启动

双击bin目录下的startup.bat,看到Server startup in xxxms时表示启动成功

访问资源

打开浏览器,输入地址:http://ip地址:端口/项目名称/资源名称

例如:http://localhost:8080/taobao/taobao.html
localhost:代表自己现在使用的电脑。

cpolar 内网穿透(彩蛋)

先去cpolar官网,先注册一个账号,注册完账号,登录进去,选择0元套餐即可,当然,你非常有钱,也可以选择其他套餐,下载cpolar压缩包,解压运行cpolar之后,复制你自己账号界面的连接命令,在你的cpolar账户界面的步骤3中,复制该命令,到运行cpolar命令框中,回车执行,(之后,你需要打开自己新建的JavaWeb程序,配置好tomcat之后,运行它,默认端口8080,一般情况下,不需要改。)再输入cpolar http 8080 回车即可,会看到一个它经过某种转换的网址,复制该网址,去浏览器打开,这个地址就是你的http:localhost:8080,只是它可以让别人访问而已,你也可以,将该网站生成一个二维码,去扫码,也可以使用。
链接: cpolar官网

web资源分类

  • 静态资源:无论访问多少次,内容不变;
  • 动态资源:每次访问,结果都可能不一样;

Servlet

什么是Servlet

Servlet是运行在web上的一种应用程序。

如何编写一个Servlet

  1. 编写一个普通类DemoServlet
  2. 继承HttpServlet
  3. 重写service方法
  4. 配置@WebServlet注解,用于配置该Servlet的访问地址
//DemoServlet.java
package com.blb.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//不加反斜杠的问题
@WebServlet("/demo")
public class DemoServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        super.service(req, resp);
        System.out.println("hello Servlet");
    }
}

Servlet接收网页发送过来的数据

    HttpServletRequest:请求
	HttpServletResponse:响应
	
	request.getParameter("xxx");	//xxx为form表单输入框的name属性值

Servlet响应数据

乱码问题

  1. html页面乱码
  2. request乱码
  3. 文件乱码(就是.java中的中文注释乱码)
  4. jdbc乱码
  5. 数据库乱码
  6. 数据库表乱码
  7. tomcat日志乱码
  8. response乱码

html页面乱码的解决办法如下:
在html里面加

head>
    <meta charset="UTF-8">
    <title>标题</title>
</head>

request乱码的解决办法如下:
在Servlet类里面加(具体就是在重写service方法的方法体里面加上)

        //设置request编码
        req.setCharacterEncoding("UTF8");      

文件乱码的解决办法如下:

将编码改为UTF-8

详细操作如下图:

jdbc乱码的解决办法如下:
将jdbc配置文件url后面加一段characterEncoding=utf8
这是我的jdbc.properties文件

driverClassName=com.mysql.cj.jdbc.Driver
jdbcUrl=jdbc:mysql:///db6?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
username=root
password=root

数据库乱码的解决办法如下:

将数据库的编码改为utf8

数据库表乱码的解决办法如下:

将数据库表的编码改为utf8

tomcat日志乱码的解决办法如下:

找到logging.properties文件
apache-tomcat-8.5.82\conf\logging.properties
将文件里面的UTF-8全部修改为GBK

response乱码的解决办法如下:

        //设置response编码
        resp.setCharacterEncoding("UTF8");

最后附上我的java源码
目录如下:

package com.blb.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//不加反斜杠的问题
@WebServlet("/demo")
public class DemoServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        super.service(req, resp);
        System.out.println("hello Servlet");
    }
}

package com.blb.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/demo2")
public class DemoServlet2 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        super.service(req, resp);
        System.out.println("hello hahahahaahhahhahaaaahhahhahahaha");
    }
}

package com.blb.servlet;


import com.blb.utils.JdbcTemplateUtils;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       //设置request编码
        req.setCharacterEncoding("UTF8");
        //设置response编码
        resp.setCharacterEncoding("UTF8");
        //设置响应内容类型(告诉浏览器这是一个什么东西,以什么编码)
        resp.setContentType("text/html;charset=UTF8");
        //1.获取表单提交过来的数据
        String name = req.getParameter("name");
        String pwd = req.getParameter("pwd");


        //2.判断用户名与密码是否正确
        JdbcTemplate jdbcTemplate = JdbcTemplateUtils.getJdbcTemplate();
        String password = null;
        try {
            password = jdbcTemplate.queryForObject("select userPassword from user where userName = ?", String.class, name);
        } catch (DataAccessException e) {
            e.printStackTrace();
        }

        if (password == null) {
            //响应
            resp.getWriter().write("用户名不存在");
            resp.getWriter().write("user not exsits");
            return;
        }

        if (!pwd.equals(password)) {
            resp.getWriter().write("密码错误");
            resp.getWriter().write("password error");
            return;
        }
        resp.getWriter().write("登录");
        resp.getWriter().write("login");
    }
}

package com.blb.utils;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;

import java.io.IOException;
import java.util.Properties;

public class JdbcTemplateUtils {
    private static HikariDataSource hikariDataSource;
    private static JdbcTemplate jdbcTemplate;
    private static DataSourceTransactionManager transactionManager;
    private static DefaultTransactionDefinition transactionDefinition = new DefaultTransactionDefinition();

    static {
        try {
            Properties properties = new Properties();
            properties.load(JdbcTemplateUtils.class.getClassLoader().getResourceAsStream("jdbc.properties"));
            HikariConfig hikariConfig = new HikariConfig(properties);
            hikariDataSource = new HikariDataSource(hikariConfig);
            transactionManager = new DataSourceTransactionManager(hikariDataSource);
        } catch (IOException e) {
//            e.printStackTrace();
            System.out.println("配置文件找不到,使用默认配置");
        }
    }

    /**
     * 获取JdbcTemplate
     *
     * @return
     */
    public static JdbcTemplate getJdbcTemplate() {
        if (jdbcTemplate == null) {
            jdbcTemplate = new JdbcTemplate(hikariDataSource);
        }
        return jdbcTemplate;
    }

    /**
     * 开启事务
     *
     * @return
     */
    public static TransactionStatus beginTransaction() {
        return transactionManager.getTransaction(transactionDefinition);
    }

    /**
     * 开启事务
     *
     * @param transactionDefinition
     * @return
     */
    public static TransactionStatus beginTransaction(TransactionDefinition transactionDefinition) {
        return transactionManager.getTransaction(transactionDefinition);
    }

    /**
     * 提交事务
     * @param transactionStatus
     */
    public static void commit(TransactionStatus transactionStatus){
        transactionManager.commit(transactionStatus);
    }
    /**
     * 回滚事务
     * @param transactionStatus
     */
    public static void rollback(TransactionStatus transactionStatus){
        transactionManager.rollback(transactionStatus);
    }
}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
    <form action="login" method="post">
         用户名:<input name="name"><br>
         密码:<input name="pwd"><br>
        <button>登录</button>
    </form>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>宝贝</title>
</head>
<body>
欢迎您,我的宝贝!!!
</body>
</html>

Jar包:
链接:https://pan.baidu.com/s/1j3UIMRyowI5CNnbOZ3y0EQ
提取码:7987
–来自百度网盘超级会员V4的分享

tomcat 实现文件上传下载 实现文件的上传和下载的源代码 决定没问题的。 利用了struts2 tomcat 立即下载

相关推荐

tomcat上传下载文件

tomcat上传下载文件亲测,ok

tomcat文件的上传和下载

tomcat文件的上传和下载

m0_72596958的博客 521

文件上传到tomcat服务器

用于web项目,将文件上传到tomcat服务器非项目文件目录下

Tomcat服务器Servlet生命周期、上传下载文件、使用XHR请求数据、注解使用

Servlet 认识Tomcat服务器 使用Maven创建Web项目 创建Servlet 探究Servlet的生命周期 解读和使用HttpServlet @WebServlet注解详解 使用POST请求完成登陆 上传和下载文件 下载文件 上传文件 使用XHR请求数据 重定向与请求转发 重定向 请求转发 ServletContext对象 初始化参数

m0_73976305的博客 1163

tomcat文件上传功能

文件上传下载功能实现零、流程一、准备工作1、创建空项目2、导包3、配置Tomcat二、文件上传的注意事项(调优)三、需要用到的类详解FileItem类ServletFileUpload类四、代码编写 零、流程 一、准备工作 1、创建空项目 没有使用Maven,jar包需要手动下载导入 创建最普通的webapp module: 2、导包 ​ 对于文件上传,浏览器 再上传的过程中讲文件以流的形式提交到服务器,一般采用apache的开源工具common-fileupload这个文件上传组件,依赖于 comm

weixin_43766278的博客 7045

tomcat实现文件上传下载

实现下载 修改server.xml修改web.xml 实现上传 实现客户端的上传post请求代码实现 实现服务端的处理 小结 实现下载 实现下载需要 - 修改Tomcat中的server.xml - 修改web.xml 修改server.xml 在<Host> </Host>中加入(一般在文件末尾可以...

a594455873的专栏 758

传智播客JavaWeb day01 快捷键、XML

2015-01-14   一直计划着学习java,今天晚上终于下定决心看了下传智播客朴乾老师的javaweb开发视频day01之第一讲,主要内容是开发工具简单介绍、怎么创建工程、Junit的介绍,我是C#出生,所以对号入了座。 1.JDK == .Net Framework   都是基础库,但是Java开发工具要手动引入,类似dll引入 2.Content Assist =...

weixin_30539625的博客 229

JavaWeb day01总结

day01 JavaWeb的课程安排 前段阶段 html+css+js+jquery+bootstrap 6天 数据库阶段 mysql+mysql进阶+jdbc+连接池+bdutls 4天 javaWeb核心技术 tomcat+http+servlet+jsp+request+resonpse+jstl+el+过滤器+监听+ajax 9天 小米商城 6天 ...

qq_44413573的博客 464

javaweb入门day01

JavaWeb概念: 使用java语言开发基于互联网的项目 软件架构: 1.C/S:Client/Server 客户端/服务器端 在本地有一个客户端程序,在远程有一个服务器端程序(构成一个软件) qq LOL 优点:不需要线上传输数据 用户体验好 缺点:开发、安装、部署、维护都很麻烦 2.B/S:Br...

weixin_45770080的博客 261

Javaweb day01

jsp servlet -> tomcat tomcat run -> jre -> jdk -> JAVA_HOME 如何安装eclipse? 1) 安装jdk 2) 配置JAVA_HOME window + R -> cmd -> java -version 3) 下载和安装eclipse 32 jdk -> 32 eclipse 64 jdk -> 64 eclipse 1、javaweb 概述 2、开发工具的了解 1)Hbuilder 2)

qq_44437544的博客 228

javaweb学习day01

央视网

adser_user的博客 1184

tomcat文件上传下载、删除

tomcat文件上传下载、删除,主要是Tomcat文件的上传、下载和删除。包含有时候多次删除删不掉的处理方法,希望对大家有用

JavaWeb-Day01

java中,动态web资源的开发技术就统称为javaWeb!

山野有雾灯 870

JavaWeb 学习日志day 01

JavaWeb 学习日志day 01 Java Web 1、基本概念 1.1、前言 web开发: web,网页的意思 , www.baidu.com 静态web html,css 提供给所有人看的数据始终不会发生变化! 动态web 淘宝,几乎是所有的网站; 提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同! 技术栈:Servlet/JSP,ASP,PHP 在Java中,动态web资源开发的技术统称为JavaWeb; 1.2、web应用程序 web应

呆呆小哥的秘密基地 270

JavaWeb开发_Day01

JavaWeb开发_Day01,包含 Web简介、Web前端简介 和 HTML、CSS 写于2024/07/15

ZZHow Blog 1275

JavaWeb学习 day01

今天,我开始了JavaWeb的学习。 首先,学习了JavaWeb概述:软件架构、JavaWeb相关技术、项目体系结构。然后简单了解了开发工具,有HBuilder、EditPlus、Eclipse等等。下载安装了HBuilder,创建了第一个html文件。下载安装Eclipse。还学习了UI。HTML概述、基本语法规范等、HTML语法、表格、超链接、表单:form标签,文本框,密码框,单选框,多选框、插入图片、列表:ul-ol列表、P-H-标题段落。CSS概述、CSS编写位置以及优先级、CSS选择器及优先级、

m0_49528461的博客 270

javaweb day01

盒子:页面中所有的元素(标签),都可以看做是一个盒子,由盒子将页面中的元素包含在一个 矩形区域内,通过盒子的视角更方便的进行页面布局。盒子模型组成:内容区域(content)、内边距区域(padding)、边框区域(border)、外边 距区域(margin)div标签:一行只显示一个(独占一行) 宽度默认是父元素的宽度,高度默认由内容撑开可以设置宽高(width、height)表单属性: action: 规定表单提交时,向何处发送表单数据,表单提交的URL。h6为六级标题,字体是最小的。

shui_si_的博客 1524

JavaWeb-day01-TomCat

学习JavaWeb基础

yb14672的博客 351
上一篇: 什么是MySQL索引
下一篇: JavaWeb-day02&day03
月熙_
博客等级 码龄6年 10粉丝 · 10原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值