一、网站发布
1.1、为什么要用tomcat
网页开发好了,该如何发布呢?我们需要一款可以发布网站的服务器,tomcat就是一款非常优秀的服务器。
1.2、单独部署tomcat
在Windows系统上单独部署tomcat8
现场演示,使用步骤:
1、安装jdk,并且配置环境变量
2、将tomcat解压出来,并且修改配置文件(配置jdk路径)
3、将网页发布到tomcat服务器
1.3、在idea中使用tomcat
idea配置tomcat
Configure > Setting > Build,Execution,Deployment > Application Servers
IDEA创建JavaWeb应用
创建一个Maven项目,选择org.apache.maven.archetypes:maven-archetype-webapp项目
项目的名称和路径
选择本地安装的Maven路径(已经配好阿里云镜像的maven)
项目创建完成
在IDEA中发布web项目
点击Add Configuration按钮
添加一个新的配置项
选择刚刚配置的tomcat
点击Deployment,部署项目
启动tomcat
网页成功打开
二、切片1:登陆功能
2.1、导入:为什么要使用Servlet
Serlvet是以java技术为基础,运行于服务器端的应用程序组件。它处理请求信息,并将结果发送到客户端。Servlet的客户端可以提出请求并获得该请求的响应,客户端可以是任何Java程序、浏览器或设备。
Servlet的主要功能: 根据客户端请求动态返回整个HTML页面 可以与服务器上的其他资源进行通信,包括数据库、其他java应用程序以及使用其他语言编写的应用程序。 处理与多个web客户端的连接,接收来自多个web客户端输入的信息,并将结果发送到相应的web客户端。 响应对web客户端上applet的个别连接,并保持连接处理找开状态,允许在这个单一连接上进行多种数据传递。
2.2、原型图(axure)
用axure现场画(效果:)
用户名或密码错误:
用户名或密码正确:
2.3、实现需求
2.3.1、需求分析
需求分解:
1、新建web项目
2、创建login.html页面
3、在login.jsp页面上添加登陆表单
4、创建LoginServlet,用于处理html页面发来的请求
5、在LoginServlet中处理业务逻辑,并响应最终结果
2.3.2、需求实现
前台页面:login.html
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="LoginServlet" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="passwd"><br>
<input type="submit" value="登录">
<input type="reset" value="重置">
</form>
</body>
</html>
在pom.xml中添加servlet、JSP、JSTL的依赖
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!--EL和JSTL-->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
添加完成后,刷新maven
后台Servlet:LoginServlet.java
package manager;
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.io.PrintWriter;
@WebServlet(name = "LoginServlet", value = "/LoginServlet")
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
resp.setHeader("content-type", "text/html;charset=utf-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter pw = resp.getWriter();
String username = req.getParameter("username");
String passwd = req.getParameter("passwd");
if ("admin".equals(username) && "123".equals(passwd)) {
pw.println("欢迎使用xxx管理系统");
} else {
pw.println("用户名或密码错误,请重试");
}
pw.close();
}
}
2.4、知识点补充
2.4.1、Request对象
HttpServletRequest接口代表客户的请求(用来接收用户从页面上传过来的值)。容器在调用servlet的doGet和doPost方法时,会创建一个SttpServletRequest接口的实例,作为参数传给doGet和doPost 。
方法 | 描述 |
---|---|
Public String getParameter(String name) | 获得页面传过来的指定名称的参数值 |
public String[] getParameterValues(String name) | 获以指定名称参数的所有值数组。它适用于一个参数名对应多个值的情况,如页面表单中的复选框 |
public java.util.Map getParameterMap() | 返回所有参数的一个Map对象,其中key代表参数名,value代表参数值 |
案例:使用servlet获得表单数据
request对象获得用户提交的数据中如果有中文会乱码,需要设置request对象的编码格式:
方法 | 描述 |
---|---|
Public void setCharacterEncoding(String env) | 重写此请求正文中使用的字符编码的名称 |
2.4.2、Response对象
HttpServletResponse接口代表向客户端发送的响应。容器在调用servlet的doGet和doPost方法时,同样会创建一个HttpServletResponse接口的实例,作为参数传给doGet和doPost方法.
方法 | 描述 |
---|---|
public sendRedirect(String arg0) | 传递临时响应,响应的地址由location指定。 |
2.5、案例拓展
2.5.1、案例一
按图实现效果
实现用户注册功能,校验用户名是否存在
使用到的知识点
HTML表单控件、HTML、Servlet
参考代码
暂无
2.6、小结
现场提问
1、Servlet类需要继承自哪一个基类?
2、在Servlet中接收Get请求和Post请求的方法是哪两个?
3、在Servlet中接收和响应数据的对象是哪两个?
4、在Servlet中响应数据时向网页打印数据使用的是哪个对象?
5、在Servlet中如何防止乱码?
6、在Servlet中如何接收页面传递的参数?
三、课程小结
3.1、知识框架图
现场提问,用XMind现场总结,再次加深学生印象
3.2、课后作业
需求定义
开发一个用户注册的页面
需求分解
需求分解:
1、在页面中添加标题
2、在页面中添加用户名、密码、重复密码、昵称的文本框
3、在页面中添加爱好复选框
4、在页面添加性别单选按钮
5、在页面添加学历下拉列表
6、在页面添加注册、重置按钮