JAVAWEB入门

JAVAWEB入门

本章内容:

一、 了解web开发的基本概念
  1. 浏览器/服务器:

    客户端不需要安装应用程序,需要一个浏览器

    客户端/服务器:客户端需要安装应用程序,服务器上一般放的是数据库

    bs的优点:项目更新维护方便。

  2. http协议(知道):

    超文本传输协议(规则)

    信息传输过程:信息传输之前首先建立连接,无状态(本次请求后,服务器得不到上一次请求传递给服务器的信息)

    信息传输格式

    请求: 行(请求方式(get/post) ,请求路径 头(客户浏览器一些信息以及发送给服务器的信息的一些说明信息) 体(真正想发送给服务器的信息(如登录的用户名和,密码))

    响应:行(响应的状态代码) 头(响应回来的内容的说明信息(如内容大小,内容类型)以及服务器的信息) 体(在客户端界面上呈现出来的信息)

二、了解JAVA WEB服务器

需要使用中间服务器搭建你的项目,让你的项目可以通过:协议://ip:port/ 访问

JAVA的服务器

Tomcat Apache

weblogic

websphare

三、安装tomcat
  1. 下载地址:Apache Tomcat® - Apache Tomcat 8 Software Downloads

  2. tomcat目录结构

    image-20221121102115580

    bin webapps(,非常重要,是web项目的发布目录) conf(配置文件所在的目录) log(日志信息所在目录) lib(jar包所在的目录) work(存放项目在运行过程中产生的文件) temp(临时文件所在的目录)

  3. 启动tomcat

    bin——>startup.bat

    http://localhost:8080/

    协议://ip地址:端口号

    Tomcat的默认端口是8080

    image-20221121102549123

    启动Tomcat出现的问题与解决方式

    1、运行startup.bat时一闪而过。解决方法:需要在环境变量中配置JAVA_HOME

    2、访问不到项目中的页面

    image-20221121105741306

    原因:tomcat启动被停掉了,不要关闭启动窗口

    3、服务器没有个关闭也访问不到。

    解决方案:

    a、项目名称是否正确

    b、是否访问的页面为index.html

    为什么index.html可以直接找到,是因为tomcat默认配置过了

  4. tomcat端口号的配置

    tomcat的配置文件:tomcat安装目录\conf\server.xml

    image-20221121110136576

    image-20221121110400707

    需要重新启动tomcat

    image-20221121110608525

四、发布JAVAWEB项目:

将项目放到tomcat的webapps目录中

把项目什么内容放到这个目录中:编译好的class文件、页面和页面需要用的资源(css、js、图片等等)

url:统一资源定位符

协议://ip地址:端口号/项目文件的具体的路径

在浏览器中输入统一资源定位符来访问服务器中的代码

tomcat需要和eclipse进行协作

五、使用eclipse开发第一个web项目 (重点掌握)
  1. eclipse和tomcat进行关联

    1)建立项目的时候 —->targetruntime——->new runtime(第一次建立项目的时候做即可,后续建立项目不用)

    2)winodw—-preference———server——runtime enviroment———>add

  2. javaweb项目,默认的类库如下

  3. 运行web项目

    RUN AS RUN ON SERVER————->发布项目并启动tomcat服务

  4. eclipse默认的项目发布目录:

    工作区.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps

  5. 开发环境下本地的目录结构

    访问路径(URL):协议://ip地址:端口号/项目根目录/具体资源的路径

  6. 欢迎页面的配置(了解)

    直接输入项目名称就可以访问到的页面

六、servlet的应用(重点掌握)

Servlet作用:是一个运行在服务器上的java程序,处理请求和响应

  1. 建立servlet

    继承HttpServlet

    /** * 1,作用:接收请求,处理,给客户端进行响应 
    * 2.就是一个java类,是继承了HttpServlet的java类 
    * 3.必须配置一个访问路径,在web.xml中配置 
    * 4.使用url进行访问,在地址栏中输入url的时候,会根据web.xml文件中配置的信息定位到应该去执行哪一个Servlet中的方法 
    *  * */
    public class HelloServlet  extends  HttpServlet{//处理get请求    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubSystem.out.println("服务器端收到了来自于客户端的请求");}    //处理post请求   @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub    }
    }
  2. 配置 servlet(在web.xml中配置)

    配置方式一:一个Servlet可以配置多个请求路径()url)_

    <servlet>      <servlet-name>hs</servlet-name>      <!-- HelloServlet的全名-->      <servlet-class>com.servlets.HelloServlet</servlet-class>  
    </servlet>  
    <servlet-mapping>      <servlet-name>hs</servlet-name>      <!-- /:代表的是web项目的根目录。在开发环境下相当于webcontent目录 --> <url-pattern>/hello</url-pattern>  
    </servlet-mapping>  
    <servlet-mapping>      <servlet-name>hs</servlet-name>      <!-- /:代表的是web项目的根目录。在开发环境下相当于webcontent目录 --><url-pattern>/hello1</url-pattern>
    </servlet-mapping>

    注意:url-pattern最前面的/代表的是web项目的根目录

    配置方式二:使用通配符

    <servlet>      <servlet-name>hs</servlet-name>      <!-- HelloServlet的全名-->      <servlet-class>com.servlets.HelloServlet</servlet-class>
    </servlet>   
    <servlet-mapping><servlet-name>hs</servlet-name><url-pattern>/*</url-pattern>
    </servlet-mapping>

    配置方式三:固定后缀

     <servlet>      <servlet-name>hs</servlet-name>      <!-- HelloServlet的全名-->      <servlet-class>com.servlets.HelloServlet</servlet-class>  
    </servlet>   
    <servlet-mapping>       <servlet-name>hs</servlet-name><url-pattern>*.do</url-pattern>   
    </servlet-mapping>

    配置方式四:配置到根路径的子路径中

    <servlet>      <servlet-name>hs</servlet-name>      <!-- HelloServlet的全名-->      <servlet-class>com.servlets.HelloServlet</servlet-class>  
    </servlet>   
    <servlet-mapping>       <servlet-name>hs</servlet-name>       <url-pattern>/test/a</url-pattern>   
    </servlet-mapping>
  3. 给客户断浏览器响应内容

    public class HelloServlet  extends  HttpServlet{    //处理get请求    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub        //System.out.println("服务器端收到了来自于客户端的请求");        //设置响应的内容的类型和编码        resp.setContentType("text/html;charset=utf-8");//得到一个给客户端浏览器写内容的流对象        PrintWriter out=resp.getWriter();//写        out.print("<h1>你好,客户端</h1>");out.print("<h1>你好,客户端</h1>");out.flush();        out.close();}    //处理post请求   @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub    }
    }
  4. 连接数据库展示所有的商品信息

    第一步:将jar包复制到 web-inf——lib目录中

    第二步:src下建立配置文件

    第三步:准备dao及service层以及一些工具类

    工具类

    dao层(映射器接口和映射文件)

    Service层

    第四步:建立Servlet

    第五步:对Servlet进行配置

    第六步:浏览器中进行访问

5.完成登录功能

第一步:先分析流程

第二步:编写登录页面:指定action属性,就是点击登录的时候要去的地方(一般为服务器上Servlet的路径)

第三步:编写服务器上的Servlet,接收客户端传递过去的用户名和密码

第四步:完成servicedao层代码,验证用户名和密码是否正确

Dao(UserMapper.java)

Dao(UserMapper.xml)

Service(UserService.java)

第五步:继续完善Servlet中的代码,调用Service的代码进行判断,并根据判断结果的不同跳转到不同的页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/468995.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode:55.跳跃游戏

1.解题思路&#xff1a;贪心算法看最大覆盖范围 2.模拟过程&#xff1a; 1.若数组长度等于1&#xff0c;直接返回True 2.循环遍历覆盖范围&#xff0c;选取最大的覆盖范围&#xff1b;若覆盖范围覆盖到了最后一个元素&#xff0c;直接返回true. 3.代码&#xff1a;(贪心无套…

【C++关联式容器】unordered_set

目录 unordered_set 1. 关联式容器额外的类型别名 2. 哈希桶 3. 无序容器对关键字类型的要求 4. Member functions 4.1 constructor、destructor、operator 4.1.1 constructor 4.1.2 destructor 4.1.3 operator 4.2 Capacity ​4.2.1 empty 4.2.2 size 4.2.3 max…

C++:priority_queue模拟实现

C&#xff1a;priority_queue模拟实现 什么是priority_queue模拟实现向上调整算法向下调整算法插入与删除 仿函数 什么是priority_queue priority_queue称为优先级队列。优先级队列是一种特殊的队列&#xff0c;其中每个元素都有一个相关的优先级。元素的优先级决定了它们在队…

黑马Java——集合进阶(不可变集合、Stream流、方法引用)

目录 一、不可变集合 1、创建不可变集合的应用场景 2、创建不可变集合的书写格式 2.1、不可变的List集合 2.2、不可变的Set集合 2.3、不可变的Map集合 3、小结 二、Stream流 1、体验Stream流的作用 2、Stream流的思想 3、Stream流的使用步骤 3.1、单列集合获取Strea…

Kafka(三)(集成SpringBoot)

第三章 Kafka集成 SpringBoot SpringBoot 是一个在 JavaEE 开发中非常常用的组件。可以用于 Kafka 的生产者&#xff0c;也可以 用于 SpringBoot 的消费者。 在初始化springboot环境的时候要勾选kafka依赖 <dependency><groupId>org.springframework.kafka</gr…

【JavaEE】_Fiddler抓包HTTP请求与响应

目录 1. Fiddler简介 2. Fiddler安装步骤 3. 抓包结果举例&#xff08;sogou.com&#xff09; 1. Fiddler简介 1. 要查看HTTP的请求和响应&#xff0c;需要使用抓包工具进行抓包&#xff1b; 抓包即获取网卡上经过的数据并显示出来&#xff0c;常用的抓包工具有wireshark和…

嵌入式Qt 计算器界面设计

一.计算器界面设计 计算机界面程序分析&#xff1a; 需要用到的组件&#xff1a; 界面设计&#xff1a; 界面设计实现&#xff1a; 实验1&#xff1a;计算器界面设计 #include <QtGui/QApplication> #include <QWidget> //主窗口 #include <QLineEdit> //文…

《CSS 简易速速上手小册》第5章:CSS 动画与过渡(2024 最新版)

文章目录 5.1 CSS 过渡基础&#xff1a;网页的微妙舞步5.1.1 基础知识5.1.2 重点案例&#xff1a;按钮悬停效果5.1.3 拓展案例 1&#xff1a;渐变显示导航菜单5.1.4 拓展案例 2&#xff1a;动态调整元素大小 5.2 关键帧动画&#xff1a;编排你的网页芭蕾5.2.1 基础知识5.2.2 重…

FastAI 之书(面向程序员的 FastAI)(六)

原文&#xff1a;www.bookstack.cn/read/th-fastai-book 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十三章&#xff1a;卷积神经网络 原文&#xff1a;www.bookstack.cn/read/th-fastai-book/44d8848dfac0c1b0.md 译者&#xff1a;飞龙 协议&#xff1a;CC BY-N…

波奇学Linux:软硬链接

ln指令建立链接 软链接 硬链接 所属者的前的数字表示硬链接数&#xff0c;引用计数&#xff0c;file.txt和soft_link是软链接所以都为2 软链接有独立inode&#xff0c;硬链接没有&#xff0c;所以硬链接不是独立文件&#xff0c;软链接是独立文件&#xff0c;且硬链接的属性会…

备战蓝桥杯---动态规划(入门2)

今天主要介绍区间dp比较难的题&#xff1a; 下面是分析&#xff1a; 我们如果先固定点V0&#xff0c;那我们得去枚举两个点使它构成三角形&#xff0c;同时求目标值也比较难确定&#xff08;起始与终止都带0&#xff09;&#xff0c;于是我们考虑固定边&#xff0c;我们固定v0…

MySQL篇----第十八篇

系列文章目录 文章目录 系列文章目录前言一、SQL 语言包括哪几部分?每部分都有哪些操作关键二、完整性约束包括哪些?三、什么是锁?四、什么叫视图?游标是什么?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,…