Java WEB
- Java WEB是一套开发组件,属于Java EE,Java的企业级解决方案,Java SE、Java EE、Java ME;
- Servlet、JSP、Filter、Java EE、Java ME
- 用Java语言开发WEB程序;
- 使用Java开发一套WEB后端的程序,部署到服务器中,用户可以通过浏览器来访问我们的程序;
-
开发应用程序;
-
使用Tomcat进行部署、才可以被访问;
Tomcat是应用服务器,专门用来将Java程序部署,对外开放,以供用户去访问;
**下载地址:**http://tomcat.apache.org/ -
下载
-
解压
bin文件夹存放脚本命令的启动、停止Tomcat;
conf文件夹存放配置文件;
lib文件夹存放jar包;
temp文件夹存放临时文件;
webapps存放允许客户端访问的资源;
work文件夹存放JSP转换的Servlet文件; -
启动Tomcat
Mac:在terminal中进入Tomcat的bin目录,输入
sudo startup.sh
win:直接进入bin目录双击startup.bat
启动之后打开浏览器输入:localhost:8080,如果成功显示为以下页面
- 开发
想要开发Java WEB的程序,首先需要将Java WEB程序部署到Tomcat中。启动Tomcat,客户端就可以访问Java WEB程序;
- 创建项目时将Tomcat路径加入,之后再次创建项目时会自动添加;
创建好项目需要现对Tomcat进行设置,先找到Tomcat的位置;
之后点击左上角的加号,进行Tomcat服务的添加;
Servlet
使用Java来完成网站后台的业务逻辑操作,需要借助于Servlet完成,Servlet是一个接口,专门用来提供WEB访问服务的;
GET/POST;
- 创建Java WEB,开发代码;
- 部署Tomcat,启动应用;
- 客户端(浏览器)可以直接访问Tomcat,调用部署的项目;
Servlet中直接返回HTML非常麻烦,维护性几乎为零,这是我们就需要使用JSP。JSP的本质就是一个Servlet,可以像编写HTML代码一样去编写Servlet的逻辑;
package com.wei.demoservlet;
import javax.servlet.*;
import javax.io.IOException;
@WebServlet("/my")
public class MyServlet extends HttpsServlet{
@Override
protexted void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
resp.setContentType("text/html;charset=UTF- 8");
String keyword = req.getParameter("keyword");
String result = null;
switch (keyword){
case "java":
result = "Java是一门面向对象编程语 言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的 多继承、指针等概念,因此Java语言具有功能强大和简单易用两 个特征。Java语言作为静态面向对象编程语言的代表,极好地实 现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编 程 [1] 。";
break;
case "python":
result = "Python 是一种解释型、面 向对象、动态数据类型的高级程序设计语言。\n" + "\n" + "Python 由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。\n" + "\n" + "像 Perl 语言一样, Python 源代码同样遵循 GPL(GNU General Public License) 协 议。";
break;
case "c":
result = "C 语言是一种通用的、面向 过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。";
break;
}
req.setAttribute("data",result);
req.getRequestDispatcher("index.jsp").forward( req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
<%--
Created by IntelliJ IDEA.
User: ningn
Date: 2020/9/8
Time: 17:26
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<div style="width: 300px;height: 300px;background-color: #FFFF00;" onclick="test()"></div>
<h1 id="h1">hhh</h1>
<%
String mess = (String)
request.getAttribute("data");
%>
<p>
<%=mess%>
</p>
</body>
</html>
EL表达式
是JSP提供的一种表达式,可以用来简化JSP页面曲子的问题;
<%
String mess=(String)
request.getAttrubute("data");
%>
<p>
<%=mess%>
</p>
使用EL简化后可以写为
<p>
${data}
</p>
JSTL
JSP标准标签库Java Stangard Tag Library,利用JSTL的标签可以结合EL表达式对JSP页面的数据进行逻辑处理,比如循环遍历;
- 倒入jar包;
复制jar包,粘贴到lib目录下
配置倒入工程
- 使用JSP页面引入标签
<%@ taglib prefix="c"
uri="http://java.sun.com/jsp/jstl/core"%>
- 编写代码
package com.wei.servlet;
import com.southwind.entity.User;
import com.southwind.service.UserService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet("/user")
public class UserServlet extends HttpServlet {
private UserService userService = new UserService();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//查询数据
List<User> list = userService.data();
req.setAttribute("list", list);
req.getRequestDispatcher("user.jsp").forward(r eq, resp);
}
}
package com.wei.service;
import com.wei.entity.User;
import java.util.ArrayList;
import java.util.List;
public class UserService {
public List<User> data(){
List<User> list = new ArrayList<>();
list.add(new User(1, "张三", 22));
list.add(new User(2, "李四", 23));
list.add(new User(3, "王五", 30));
return list;
}
}
<%--
Created by IntelliJ IDEA.
User: ningn Date: 2020/7/5
Time: 17:14
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<table>
<tr>
<td>编号</td>
<td>姓名</td>
<td>年龄</td>
<tr>
<c:forEach items="${list}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.age}</td>
</tr>
</c:forEach>
</table>
</body>
</html>