目录
什么是JavaEE?:
Java EE平台构建于Java SE平台之上,提供一组API和运行环境来开发和运行大规模的,多层的,可扩展的,可靠的和安全的网络应用程序
如何在IDEA中部署WEB项目到服务器并且访问?
创建项目,选择和下图一致:
想要添加不同的WEB项目的模块时,在该项目右键单击NEW,方法和之前的一样,便能在之前的项目中创建该项目:
我们将WEB项目复制,放在web这个文件夹中
我们可以在右上角的运行旁边可以看见tomcat猫的图标,单击
编辑好之后点击运行,控制台出现ms的标识时,证明服务器已经加载好了,这时候这个web项目就可以访问了,我们需要输入我们刚才输入的url的地址来进行访问。
使用JSP 将时间显示在浏览器网页中:
1:在当前模块的web文件夹中添加jsp文件:
2)在这个JSP先编写JavaScript代码。
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/8/19 0019
Time: 19:42
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script>
function showTime(){
var date=new Date();
document.getElementById("setTime").innerHTML=date;
}
</script>
</head>
<body onload="showTime()">
<div id="setTime"></div>
</body>
</html>
运行效果:
这是使用html的方式进行代码的编写,这样子是访问到客户端的时间,也就是用户的主机时间。我们可以按F12访问到源代码
现在我们使用jsp的语法来对服务器的时间进行访问,并且打印到浏览器页面上:
<%@ page import="java.util.Date" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/8/19 0019
Time: 19:42
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script>
function showTime(){
var date=new Date();
document.getElementById("setTime").innerHTML=date;
}
</script>
</head>
<body onload="showTime()">
<div id="setTime"></div>
<%--jsp注释: 下面的括号里可以编写java代码,我这个左右两边是jsp的注释--%>
<%//用这种对称括号里写可以写java代码,并且可以用“”将html代码括起来进行使用
Date date=new Date();
System.out.println("系统时间为: "+date.toLocaleString());//打印在控制台的代码
out.println("显示时间的方法一:"+date.toLocaleString()+"</br>");//打印在浏览器的时间
%>
<%="显示时间方法二"+date.toLocaleString()%></br>
</body>
</html>
这里JSP就是在HTML中内嵌入HTML代码,JSP是服务端的技术,有服务器编写变异java脚本代码,将整个页面返回给浏览器
JSP执行过程:
浏览器发送请求访问服务器某个jsp页面---->>>服务器访问这个jsp的文件,将其转译为.java文件,在生成.class文件,将这个文件交给浏览器,浏览器便可以执行(.java文件在未修改的情况下只运行一次,当生成了.class文件后,只运行class文件)
练习:统计网页访问人数:
练习进阶:在访问人数上加上网页的头和网页的地步:
分别新建3个jsp文件,1个里面包含网页头部图片 1个包含内容 ,1个底部:
再在该项目中新建文件夹,添加图片
编写头部底部的代码
编写中间内容的代码,并且引用头部的jsp和底部的jsp代码
中间的内容代码的方括号中的代码包含了两个知识:
静态包含和动态包含的两种不同的包含方式的区别:
包含方式不同:
静态包含是 将这个语句转换为html语句,
动态包含是调用方法执行该语句
包含的时机不同:
静态包含在编译时执行一次
动态包含是执行的时候调用方法
生成class的数量不同:
静态包含不生成class文件(随着内容文件编译生成class文件时 静态包含的代码转换成html语言)
动态包含生成class文件
是否可以有同名变量:
静态包含不可以生成同名变量。静态包含的文件里定义变量相当于定义全局变量。
动态包含可以生成同名变量。(动态包含相当于方法,方法中可以定义同名的变量(变量的作用域))
练习:编写提交表单(新建html文件 新建jsp文件):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="dologin.jsp"method="get">
用户名: <input type="text" id="username" name="username">
密码:<input type="password" id="pwd" name="pwd">
<input type="submit" value="提交">
</form>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/8/19 0019
Time: 20:51
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>
<%
String name1= request.getParameter("username");//获得name=username
String pwd1=request.getParameter("pwd");//获得name=pwd
out.println(name1.indexOf("a")+" "+pwd1.length());
if(name1.indexOf('a')>=0&&pwd1.length()>=4){//名字包含lht 密码长度大于4
out.println("登陆成功");
}else{
out.println("登陆失败");
}
%>
</body>
</html>
HTTP介绍:
Servlet使用:
servelet是控制访问那个页面的,jsp是将服务器处理后显示在浏览器中:
新建一个模块,在WEB-xml文件里修改配置文件:
<?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_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/first</url-pattern>
<url-pattern>*.ok</url-pattern>
</servlet-mapping>
</web-app>
在src文件里新建文件,继承HttpServlet类重写service方法
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class MyServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter printWriter=response.getWriter();
printWriter.write("<html><head><title>");
printWriter.write("myFirst</title></head>");
printWriter.write("<body>这是我的网页哦</body>");
printWriter.write("</html>");
printWriter.close();
}
}