Java WEB(二)Java WEB

Java WEB(二)Java WEB

Java WEB

  • Java WEB是一套开发组件,属于Java EE,Java的企业级解决方案,Java SE、Java EE、Java ME;
  • Servlet、JSP、Filter、Java EE、Java ME
  • 用Java语言开发WEB程序;
  • 使用Java开发一套WEB后端的程序,部署到服务器中,用户可以通过浏览器来访问我们的程序;
  1. 开发应用程序;

  2. 使用Tomcat进行部署、才可以被访问;
    Tomcat是应用服务器,专门用来将Java程序部署,对外开放,以供用户去访问;
    **下载地址:**http://tomcat.apache.org/

  3. 下载

  4. 解压
    bin文件夹存放脚本命令的启动、停止Tomcat;
    conf文件夹存放配置文件;
    lib文件夹存放jar包;
    temp文件夹存放临时文件;
    webapps存放允许客户端访问的资源;
    work文件夹存放JSP转换的Servlet文件;

  5. 启动Tomcat
    Mac:在terminal中进入Tomcat的bin目录,输入

sudo startup.sh

在这里插入图片描述
win:直接进入bin目录双击startup.bat

启动之后打开浏览器输入:localhost:8080,如果成功显示为以下页面
在这里插入图片描述

  1. 开发
    想要开发Java WEB的程序,首先需要将Java WEB程序部署到Tomcat中。启动Tomcat,客户端就可以访问Java WEB程序;
    在这里插入图片描述
  • 创建项目时将Tomcat路径加入,之后再次创建项目时会自动添加;

在这里插入图片描述
创建好项目需要现对Tomcat进行设置,先找到Tomcat的位置;在这里插入图片描述
之后点击左上角的加号,进行Tomcat服务的添加;

Servlet

使用Java来完成网站后台的业务逻辑操作,需要借助于Servlet完成,Servlet是一个接口,专门用来提供WEB访问服务的;
GET/POST;

  1. 创建Java WEB,开发代码;
    在这里插入图片描述
  2. 部署Tomcat,启动应用;
  3. 客户端(浏览器)可以直接访问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页面的数据进行逻辑处理,比如循环遍历;

  1. 倒入jar包;
    在这里插入图片描述
    复制jar包,粘贴到lib目录下
    在这里插入图片描述
    配置倒入工程
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 使用JSP页面引入标签
<%@ taglib prefix="c"
uri="http://java.sun.com/jsp/jstl/core"%>
  1. 编写代码
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>			
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值