JavaWeb04_Maven应用(重要)

Maven应用(重要)

核心思想:约定大于配置(重中之重)

强大之处,通过依赖来获取jar包和其依赖的包

1.预习一下之前讲的

前面介绍了如何创建一个javaweb的maven项目
还介绍了如何创建一个空的maven项目
javaweb的maven项目里含有webapp,但缺少java和sources包,因为约定大于配置,因此需要手动添加,此外javaweb的maven项目含有许多的jar包

2.在有了javaweb的maven项目后,需要进行Tomcat服务器的连接(重点)

找到这个地方添加构造配置
JavaWeb04_Maven应用(重要)
一定要点+号才可以生成!!!!,否则只是填了模板设置而已,生成不了项目。
JavaWeb04_Maven应用(重要)
会出现warning,no artifacts。。。

为什么出现这个问题:我们访问一个网站,需要指定一个文件夹的名字
启动成功后,就会访问webapp下面的index.jsp。

JavaWeb04_Maven应用(重要)

3.启动Tomcat

JavaWeb04_Maven应用(重要)
**Maven的工具栏可以查看里面有哪些 项目依赖 **
JavaWeb04_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(死的)
JavaWeb04_Maven应用(重要)

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是有/的,别忘了!

写的有点乱,到时候在做具体的修正!!

上一篇:Spa项目开发之登录注册


下一篇:java – 在组件外部获取鼠标事件