Maven应用(重要)
核心思想:约定大于配置(重中之重)
强大之处,通过依赖来获取jar包和其依赖的包
1.预习一下之前讲的
前面介绍了如何创建一个javaweb的maven项目
还介绍了如何创建一个空的maven项目
javaweb的maven项目里含有webapp,但缺少java和sources包,因为约定大于配置,因此需要手动添加,此外javaweb的maven项目含有许多的jar包
2.在有了javaweb的maven项目后,需要进行Tomcat服务器的连接(重点)
找到这个地方添加构造配置
一定要点+号才可以生成!!!!,否则只是填了模板设置而已,生成不了项目。
会出现warning,no artifacts。。。
为什么出现这个问题:我们访问一个网站,需要指定一个文件夹的名字
启动成功后,就会访问webapp下面的index.jsp。
3.启动Tomcat
**Maven的工具栏可以查看里面有哪些 项目依赖 **
4.pom文件:pom.xml是maven的核心配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!--Maven版本和头文件-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--这里就是我们刚才配置的GAV-->
<groupId>org.example</groupId>
<artifactId>javaweb-01-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<!--package:项目打包方式
jar: java应用
war: javaweb应用
-->
<packaging>war</packaging>
<!-- 名称,不用管-->
<name>javaweb-01-maven Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<!-- 配置-->
<properties>
<!-- 默认构建编码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 编译版本-->
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<!--项目依赖-->
<dependencies>
<!-- 依赖的jar包配置文件-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- 项目构建用的东西-->
<build>
</build>
</project>
maven由于他的约定大于配置,我们之后可能会遇到我们写的配置文件,无法被导出或者生效的问题
解决方案:bulid下加入resource(死的)
5.可能出现的问题:
1.Tomcat最好下载10.0以下的版本,因为后面的实验用的是10.0的版本出现问题了
2.修改Maven默认的全局设置
6.Maven仓库的使用(重点)
在这里复制依赖,粘贴到pom.xml文件中,maven就能自动下载并导入了,非常方便。
alt+insert:很常用的一个快捷键。
ctrl+o:重写方法
网上找到的关于javaweb的maven的依赖,一般够用了,写在Maven的pom。xml文件中!!!
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
7.Maven优化
- 1.修改子项目WEB-INF/web.xml中为最新的,默认的不能连接tomcat
- 2.将maven结构补充完整,java包和resources包
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
</web-app>
8.编写一个servlet程序
- 1.编写一个普通类
- 2.实现Servlet接口。这里我们使用HttpServlet
- 3.编写类,重写doGet() doPut() (ctr+o || ctr+insert)
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
可以用Maven项目来实现jsp文件和web文件的连接
public class HelloServlet extends HttpServlet {
//由于get或者post只是请求实现的不同方式,可以相互调用,因为业务逻辑都一样
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter writer = resp.getWriter();//响应流
writer.print("Hello,Serlvet");
}
@Override
protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}
9.编写servlet的反射
首先在index.jsp中创造想要的页面
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
然后需要在WEB-INF/web.xml中加入映射
为什么需要映射:我们写的时JAVA程序,但是要通过浏览器访问,而浏览器需要连接web服务器,所以我们需要在web服务中注册我们写的Servlet,并且给他一个浏览器能访问的路径
<!--注册Servlet-->
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>com.wjs.servlet.HelloServlet</servlet-class>
</servlet>
<!--Servlet的请求路径-->
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
在url-pattren是有/的,别忘了!