基于idea、狂神
蓝色字代表原理,黑色字代表操作步骤
- 学习JavaWeb
- 一、JavaWeb
- 1.静态web
- 2.动态web
- 3.web服务器(web server)Tomcat
- 4.一个网站访问的过程:
- 5.发布一个web网站
- 6.在IDEA中配置Tomcat
- 二、Maven
- 1.下载Maven
- 2.在IDEA(以下皆需专业版)中创建一个Maven项目
- 3.认识maven
- 4.将maven的结构构建完整:
- 5.在IDEA中配置Tomcat
- 6.将maven中的webapp版本替换为与tomcat中的一致
- 7.分析pom文件
- 8.查看IDEA项目中的jar包与其中的联系
- 三、Servlet
- 1.Servlet原理步骤
- 2.学习模板
- 3.写Servlet(以模仿HelloWorld Example为例)
- 4.在servlet中新建一个静态web
- 5.总结与技巧
一、JavaWeb 1.静态web
页面无法更新,所有用户看到的都是同一个页面。
静态资源:html、css等
客户端给服务器发送请求,web server接受请求,将静态资源发送给客户端作为响应。
页面动态展示,web的页面因人而异。
技术栈:JSP/Servlet(B/S架构(浏览器和服务器)、基于Java语言(大多数公司的组件都是Java))、ASP、PHP
客户端给服务器发送请求,web server plugin接受请求,将file system中的静态资源和JSP或Servlet中的动态资源通过web server作为响应发还。
最适合的一种:Tomcat(基于Java)
安装Tomcat:
启动Tomcat:
访问测试:浏览器访问路径“localhost:8080”
配置Tomcat:
默认端口号:Tomcat——8080;http——80;https——443
默认主机名称:localhost(127.0.0.1)
默认网站应用存放位置:webapps
将网站源代码放到服务器(tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了:
访问域名:localhost:8080/y_study
下一章介绍
二、Maven 1.下载Maven1.Maven官网,点击左边download
2.下载所需版本的bin.zip并解压
3.配置环境变量:
编辑Path变量,增加如下:
在cmd中输入maven -version可查看配置情况
4.修改配置文件
搜索maven镜像,得到配置内容:
编辑apache-maven-3.8.3conf中的settings.xml,将这段镜像内容粘贴进去,具体位置:
5.建立本地仓库
在apache-maven-3.8.3中新建一个maven-repo文件夹,得到该文件夹的地址,并在settings.xml中增加这一行内容:
2.在IDEA(以下皆需专业版)中创建一个Maven项目F:IJ IDEAmavenapache-maven-3.8.3-binapache-maven-3.8.3maven-repo
1.启动idea,创建一个maven项目。可以勾选create from archetype,在下方选择Maven模板,这里选择maven的webapp,可创建一个webapp模板
或者,不创建模板
之后,
2.配置maven的家路径、setting.xml路径和本地仓库(maven-repo文件夹)路径,新建项目时可以配置,也可以在Settings中配置。在等待包数据下载好以后可在本地仓库中看到下载的包
注意,此时的配置只能对这一项目生效,换一个项目就需要重新配置,如需全局配置,则需关闭project后在初始页面配置,如下:
一个干净的(普通的)maven项目,即没有创建模板:
有webapp的maven项目:
在main文件夹下创建一个java文件夹(directory)和一个resources文件夹,创建时会有快捷创建提示。若没有,则创建好后右键点击java文件夹,点击Mark Directory as,选择文件夹类型
或者在Fire中的项目结构中进行配置
1.
2.
3.
4.warning出现原因:访问一个网站时,必须指定一个文件夹的名字
解决办法:添加一个项目文件夹
创建一个war包,下面的是war导出包
应用上下文决定默认访问地址,若为“/”,则默认访问路径为localhost:8080
若为“/y”,则默认访问路径为localhost:8080/y/
5.配置完成,运行该Tomcat(点击运行键),等待之后弹出以下网站,“Hello World!”是默认的webapp目录中index.jsp中的内容
将maven项目中srcmainwebappsROOTWEB-INFweb.xml中的内容替换为
apache-tomcat-9.0.54-windows-x64apache-tomcat-9.0.54webappsROOTWEB-INFweb.xml的内容
4.0.0 com.y javaweb03-maven 1.0-SNAPSHOT war javaweb03-maven Maven Webapp http://www.example.com -UTF-8 1.7 1.7 junit junit 4.11 test javax.servlet javax.servlet-api 4.0.1 javax.servlet.jsp javax.servlet.jsp-api 2.3.3 javaweb03-maven maven-clean-plugin 3.1.0 maven-resources-plugin 3.0.2 maven-compiler-plugin 3.8.0 maven-surefire-plugin 2.22.1 maven-war-plugin 3.2.2 maven-install-plugin 2.5.2 maven-deploy-plugin 2.8.2
4.0.0 com.y javaweb01.maven 1.0-SNAPSHOT junit junit 4.11 test org.springframework spring-webmvc 5.3.10 src/main/resources ***.xml false src/main/java ***.xml false
(快捷键Ctrl+Shift+/快速添加注释)
8.查看IDEA项目中的jar包与其中的联系 三、Servlet 1.Servlet原理步骤- 浏览器给web浏览器发送http请求
- Web浏览器把请求req/request交给HttpServlet类中的
service(ServletRequest req, ServletResponse res) - 该方法通过调用我们编写的实现类中覆盖的方法,如
doGet(HttpServletRequest req, HttpServletResponse resp)等,给出响应res/resp/response信息 - web服务器将这些信息相应给客户端浏览器
启动Tomcat(见一、3.web服务器(web server)Tomcat)后,在浏览器中访问http://localhost:8080/examples/,进入Servlets examples,点击Code就可以查看各Servlet源代码。
3.写Servlet(以模仿HelloWorld Example为例)1.创建一个maven项目(见maven笔记),并进行Maven环境优化
1.1.将web.xml修改成最新版:
1.2.将maven的结构构建完整(见二、4.)
2.在maven项目的srcmainjava中新建一个package,包名为你想要的web域名,然后在这个package中新建class,或者直接在java中新建一个class
3.Maven仓库的使用:下载jar包(方法一:在mvn官网中搜索寻找所需要的包):
依然复制到pom.xml中,刷新
删除作用域,则在所有情况下都能使用
方法二:点击mvn网站中所需包的“jar”按钮直接下载jar包,然后拷贝到maven仓库中javax文件夹的相应文件夹中)
4.编写一个servlet的java程序
直接继承HttpServlet ,并import导入包:
查看HttpServlet源码(快捷键Ctrl+鼠标左键点击一个对象(类、方法、变量等)可查看其源码),发现servlet的各接口/抽象类之间的关系为
注意,servlet在sun公司有两个默认的实现类:HttpServlet、GenericServlet
5.覆盖HttpServlet类中的doGet和doPost方法(快捷键Ctrl+O可以选择要定义或覆盖的父类方法)
可以直接将HelloWorld Example中的doGet的方法体复制过来:
如果要在页面中显示中文,则加上编码方式:
doGet方法中:
指定响应类型为html:resp.setContentType(“text/html”)。注意,一个页面的相应类型可以通过以下方式查看:右键点击页面–>检查–>
必须定义一个响应流:PrintWriter writer = resp.getWriter()
在页面中显示内容:writer.print(“hello,servlet”)。注意,这里的writer是前面定义的响应流对象
doPostGet方法中:
由于get或post只是请求实现的不同方式,业务逻辑都一样,因此可以相互调用:doGet(req, resp);也可以直接继承父类的。
6.注册servlet:由于浏览器访问的是web服务器,因此我们写的servlet需要在web服务器中注册,并且因为web.xml是web配置的核心应用,所以注册的方式就是改写这个文件,包括添加servlet的映射,映射中包含有其访问路径。
具体方法及注释:
(快捷键alt+fn+prt sc或alt+Ins在web.xml中快速插入和功能块)
Archetype Created Web Application helloServlet com.y.servlet.HelloServlet helloServlet /y helloServlet /y1
其中的访问路径还可以通过使用通配符“”来指定通用路径:
方法一:
访问路径为:默认路径+/hello/+任意
方法二:通用路径直接设为“/“,只是默认访问对象不再是index.jsp,而是指定的servlet对象
方法三:自定义后缀,但前不能加任何路径。例如:“.ycr“, 默认访问对象仍然是index.jsp,访问路径为任何“默认路径+任意+.ycr”都可以访问servlet,并且默认访问对象仍然是index.jsp;“/hello/.ycr“,错误。
通用路径的优先级问题:指定了固有的映射路径优先级最高,找不到才会走通用路径
7.编写完成后,配置tomcat(见maven笔记),主要配置项目发布的路径即可
8.访问:直接运行,或启动tomcat(见tomcat笔记)。使用“默认地址+为该servlet注册时其name对应映射的请求路径”。以上面这个servlet为例:
4.在servlet中新建一个静态web1.编写:在webapp中新建一个HTML文件,即可编写页面内容。例如:
2. 浏览:在默认访问地址后添加“该HTML文件名.html”即可访问。例如:
1.写一个Servlet程序只需要两个步骤:
1.1.编写一个类,实现Servlet接口;
1.2.把开发好的java类部署到web服务器中
2.学习可以在一个项目(比如javaweb04-servlet)里面建立module(比如servlet-01),而这个空的项目就是maven主工程:新建maven项目时,删掉src目录,在该项目中创建一个module,这里与创建一个带有webapp的maven项目的步骤相同。该module与maven主工程是maven父子工程,此时父项目中的pom.xml会有:
servlet-01
子项目中的会有(没有就手写):
javaweb04-servlet com.y 1.0-SNAPSHOT
子项目可以extends父项目
3.(输入一个返回变量的方法名,然后快捷键alt+enter可补充成一个定义语句,类型为该方法的返回类型)



