servlet系列练习
一、 输出打印HelloWorld
- 编写servlet–Hello
对象:响应 response - 运行:run as
- 访问:
二、Dynamic web project 版本2、3的比较
三、 客户端请求方式(get、post)练习
1. get(doget方法中将输入的println,url处会显示请求数据)
- 编写Servlet–InputServlet
对象:请求 request - 重启tomcat
- 测试
注意:不能加 ” “
2.post(html中指定servlet处理(页面会跳转,url没有请求数据),dopost调用doget,doget输出)
- 编写input.html
- 修改servlet–InputServlet
- 重启tomcat
- 测试
点击“提交”:
3. 将html文件交给文件夹管理
- input.html处做的修改
- 重启tomcat
- 测试 进入html文件夹下的input.html
四、servlet生命周期验证
1.验证
- 编写servlet–LifeCycle
- 启动Tomcat
- 访问页面
- 刷新页面
- 关闭Tomcat
2. service()
重写service方法:
启动tomcat
测试:
将不调用doget和dopost方法
3. init() 设置初始化在tomcat启动时调用
dynamic 版本3.0 中在 @WebServlet注解配置Servlet,逗号分隔:
启动tomcat
测试:
在启动时完成初始化。
访问页面:
关闭Tomcat服务:
五、乱码解决
1. 服务器返回页面中文乱码问题
修改:
2. post乱码
启动tomcat。
访问:
修改:
重启tomcat。
测试:
3. get乱码(没有出错)
get方式获得参数:
重启tomcat,访问:
六、实战–用户登录验证(post+乱码处理)
- login.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="css/signin.css" rel="stylesheet">
<script src="jquery/jquery-1.9.1.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<title>登录</title>
</head>
<body>
<div class="container">
<form class="form-signin" action="LoginServlet" method="post">
<h2 class="form-signin-heading">请登录</h2>
<label for="inputUsername" class="sr-only">用户名</label>
<input type="text" id="username" name="username" class="form-control" placeholder="用户名" required autofocus>
<label for="inputPassword" class="sr-only">密码</label>
<input type="password" id="passwd" name="password" class="form-control" placeholder="密码" required>
<div class="checkbox">
<label>
<input type="checkbox" value="remember-me"> Remember me
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">登录</button>
</form>
</div> <!-- /container -->
</body>
</html>
- servlet
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
if(username.equals("张") && password.equals("123") ) {
response.getWriter().write("欢迎 "+username);
}else {
response.getWriter().write("用户名或密码错误 ");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
- 测试:
作业:
1. 用户注册功能(post方法)
2. 编写一个servlet程序实现显示服务器当前日期时间
3. Servlet获取客户端表单数据,实现两个数字的相除运算
版权声明:本文为liao_shui原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。