建立.java文件:
src右键→new→servlet→
javapackage:servlet
class name:InputServlet(本题目建立了InputServlet,OutputServlet,WelcomeServlet)
next→
选中URL mappings:里面的/InputServlet,选中然后点右边的edit...,去掉后面的Servlet,把前面的Input换成input(大写换成小写)
取消勾选constructors from superclass
勾选inherited abstract methods
勾选doget,dopost
finish→
可以把.java里面多余的代码行删掉
建立.jsp文件:
选中webroot右键new→other→弹出对话框
在wizards下输入jsp
选择jsp file
next→
在file name下输入文件名
finish→
建立完成
.jsp文件建立在webroot下!(不要建立在webroot的web-int下,web-int文件夹下的内容机密性很高,网页无法访问)
InputServlet.java代码
package 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;
import javax.servlet.http.HttpSession;
@WebServlet("/input")
public class InputServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session=request.getSession(); //得到Session内置对象
request.setAttribute("request", "requestInformation"); //将获取的数据保存到request域中
session.setAttribute("session", "SessionInformation"); //用来设置session值的,session是名称,SessionInformation是你要保存的对象。
//session属性值与跳转方式无关,与是不是用一个浏览器有关
//request.setAttribute("request","requestInformation"); //只能是服务器端跳转
//request.getRequestDispatcher("output").forward(request, response); //请求跳转到另外一个页面
response.sendRedirect("output"); //跳转页面,和上一行一样
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
OutputServlet.java代码
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
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 javax.servlet.http.HttpSession;
@WebServlet("/output")
public class OutputServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.print("<html>");
out.print("<head>");
out.print("</head>");
out.print("<body>");
String s1=(String)request.getAttribute("request"); //返回值是Object类型,赋值时需要考虑 强制类型转换
HttpSession session=request.getSession(); //得到Session内置对象
String s2=(String)request.getAttribute("session"); //强制类型转换
out.print("request----"+s1+"<br>");
out.print("request----"+s1+"<br>");
out.print("</body>");
out.print("</html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
index.html代码
<!DOCTYPE html>
<html>
<head>
<meta charset="gbk">
<title>Insert title here</title>
</head>
<body>
<font size="5"> 登录界面<br>
<form action="check" method="post"> <!-- 描述url向check处发送表单数据 -->
用户名:<input type="text" name="name11"><br>
密码:<input type="text" name="password11"><br> <!-- password定义密码字段。该字段中的字符被掩码。 -->
<input type="submit" value="登录"><input type="reset" value="重置"><br>
</form>
</font>
</body>
</html>
WelcomeServlet代码
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
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 javax.servlet.http.HttpSession;
@WebServlet("/welcome")
public class WelcomeServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("gbk"); //这两行保证页面不乱码,其他界面的编码也要修改成gbk
response.setCharacterEncoding("gbk");
response.setContentType("text/html"); //使客户端浏览器,区分不同种类的数据
PrintWriter out=response.getWriter();
out.print("<html>"); //调用的是JspWriter类中的方法。
out.print("<head>");
out.print("</head>");
out.print("<body>");
HttpSession session=request.getSession(); //得到Session内置对象
String info=(String)session.getAttribute("info"); //(String)强制类型转换
//只有输入用户名密码,正确输入,才能进入页面
if(info==null) {
request.getRequestDispatcher("index.html").forward(request,response);
}else{
out.print("<h1>welcome</h1>");
out.print("<h1>欢迎来到青岛职业技术学院</h1>");//只有当用户名是admin,密码是123时,才会执行session。Attribute语句。get时,才不会为空
}
out.print("</body>");
out.print("</html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
这是代码位置
1、servlers,把tomato部署上
2、运行服务器
3、在网络浏览器上输入网址
http://127.0.0.1:8080/demo1101/check
成功运行