JavaWeb复习

基本概念:

首先web就是网页的意思,

静态web:html,css

技术栈:Servlet/JSP ASP PHP 在java中,动态web资源开发的技术统称为javaweb

JavaWeb应用程序

web应用程序:可以提供浏览器的程序

这个统一的web资源会被放在同一个文件夹下,web应用程序–>tomcat:服务器

客户端与服务器之间的服务原理:

静态web存在缺点,页面无法动态更新,所有用户看到的都是同一个页面

能够让页面动起来的技术:JavaScript

动态web服务器:

ASP:微软的,国内最早流行的

PHP:php开发速度很快,功能强大,跨平台,代码简单

无法承载大访问量的情况

JSP/SERVLET:

B/S架构:浏览器和服务器

C/S架构:客户端和服务器

sun公司主推B/S架构

服务器就是用来处理用户的一些请求和响应

什么是HTTP:

HTTP(超文本传输协议):是一个简单的请求响应协议 它通常运行在TCP上,

文本:html 字符串

超文本:图片,音乐,视频,定位,地图

默认端口80 ,https默认端口443 (安全的)

http两个时代:

http1.0:

HTTP/1.0

http/1.0客户端可以与web服务器连接后,只能获得一个web资源,断开连接

http2.0:

http/1.1:客户端可以与web服务器连接后,可以获得多个web资源

请求头:

响应体:

响应状态码:

MAVEN项目架构管理工具

Servlet:

把实现了Servlet接口的程序叫做Servlet

Servlet接口有几个方法:

同时它也提供了一些常量::

编写一个Servlet程序:

编写Servlet映射:

创建一个maven项目:

首相选择创建项目,选择maven模块

然后命名:比如我们就叫Test001

初始项目我们选择quick-start

这样我们就就创建好了一个初始的maven项目

我们可以删除ser目录,因为初始maven项目Test001以后一般做父工程

我们在父工程引入的引来子工程都可以用,子工程不必再次引入

我们在父工程引入jsp和servlet依赖:

<dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>javax.servlet.jsp-api</artifactId>
      <version>2.3.3</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
    </dependency>

接下来我们创建子工程Test002

选择创建新的moudle

Archertype我们选择pache.maven.archetypes:maven-archetype-webapp

创建java目录:

创建包com.it.servlet

创建类HelloServlet,继承HttpServlet

重写get和post请求:

编写简单的内容:

更新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"
         metadata-complete="true">
</web-app>

引入注册Servlet和编写请求路径:

<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.it.servlet.HellowServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>

配置tomcat

D:\VScode\cqwaimai\apache-tomcat-8.5.50\apache-tomcat-8.5.50

war包路径一定填好:

请求路径:

Servlec与tomcat的关系图:

在web.xml中可以写select和select的Mapping问题:

getServletContext可以在Servlet之间共享数据:

package com.it.servlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class HellowServlet extends HttpServlet {


    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("你好");
        String username="付勇闯";

        ServletContext servletContext = this.getServletContext();

        servletContext.setAttribute("username",username);//将一个数据保存到servletContext,名字为username,
        //值为 username 也就是 “付永闯”
        PrintWriter writer = resp.getWriter();//响应流

        writer.print("Hello Servlet");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
}
package com.it.servlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class GetServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext servletContext = this.getServletContext();
        String username = (String) servletContext.getAttribute("username");
        resp.setContentType("text/html");
        resp.setCharacterEncoding("UTF-8");
        System.out.println("输出了姓名"+username);
         resp.getWriter().print("姓名"+username);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
}

那么我们在第一个Servlet中设置的username的值就可以在第二个Servlet中拿到,前提必须先访问第一个Servlet,这样才能把username的值设置为我们想要的值,否责我们在第二个Servlet中拿到的值就位null;

dispatcher:转发

deprecated:已过时的

获取初始化参数:

一:在xml文件中定义初始化参数

第二步:

获取初始化参数:

请求转发:

通俗的讲就是,请求路径A的请求转发给请求路径B了

在xml正常配置

然后在在转发类中调用getRequestDispatcher接口

即可实现转发

读取资源文件:

Properties

创建一个Propertirs文件:

创建一个文件流来读取文件:

读取成功:

Servlet里面有连个参数HttpServletResponse,HttpServletRequest

对于Response:负责向浏览器发送数据的方法:

getOutputstream()用来发送流的方法,比如文件,图片,或者音频

getwriter()一般用来传输文字类的

常见应用:

博客内容均系原创,未经允许严禁转载!
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇