环境
tocmat8.5
eclipse
jdk
eclipse
jdk
绑定tomcat服务器
点击window--->Preference--->Server--->Runtime Environment--->Add--->选择Apach Tomat v8.5--->Next--->Finish。
第一个动态网页
1、创建一个web项目
File--->New--->Dynamic Web Project--->输入项目名--->Target runtime改为8.5--->将Dynamic web module version改为3.0--->Next--->Generate web.xml de...选择--->Next--->Finish这时在WebContent/WEB-INF/下已经自动生成web.xml文件。
2、创建一个类继承servlet类
选择Java Resource--->src--->New--->Servlet--->输入自定义的包名和类名--->Next--->修改URL mapping(自定义,但必须以”/”开头,例如“/login”)--->Next--->在弹出的Create Servlet框中,只需将Inherited abstract methods和doGet和doPost勾选--->Finish这时就生成了一个自定义Servlet类,可以在d0Get()方法中写入要输出的内容。
完整代码:
package servlets;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
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;
import bean.*;
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath()).append("<br />");
String username = request.getParameter("username");
String userpass = request.getParameter("userpass");
response.getWriter().append(username).append(request.getContextPath()).append("<br />");
response.getWriter().append(userpass).append(request.getContextPath()).append("<br />");
UserBean user = new UserBean();
boolean b = user.validate(username, userpass);
String sult;
String forward;
if(b) {
sult = "tur";
}else {
sult = "fal";
}
response.getWriter().append(sult).append(request.getContextPath()).append("<br />");
if(b) {
HttpSession session = request.getSession(true);
session.setAttribute("userid", username);
forward = "success.jsp";
}else{
forward = "failure.jsp";
}
RequestDispatcher dispatcher = request.getRequestDispatcher(forward);
dispatcher.forward(request, response);/**/
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
3、此时WebContent/WEB-INF/下的web.xml文件也已经自动配置好了。
4、添加其他Java类
选择Java Resource--->src--->New--->Class--->包名:bean--->类名:UserBean--->finish。
代码实例:
package bean;
public class UserBean {
private String username;
private String userpass;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpass() {
return userpass;
}
public void setUserpass(String userpass) {
this.userpass = userpass;
}
public boolean validate(String username, String userpass) {
if(username.equals("zhangsan") && userpass.equals("wangwu"))
return true;
else
return false;
}
}
5、添加jsp代码(3个文件)
选择WebContent--->New--->JSP file--->文件名:login.jsp。
login.jsp代码:
<%@ page contentType="text/html; charset=UTF-8"%>
<script language="JavaScript">
function isValidate(form)
{
username = form.username.value;
userpass = form.userpass.value;
if(!minLength(username, 6))
{
alert("小于6!");
form.username.focus();
return false;
}
if(!maxLength(username, 8))
{
alert("大于8!");
form.username.focus();
return false;
}
if(!minLength(userpass, 6))
{
alert("口令6!");
form.userpass.focus();
return false;
}
if(!maxLength(userpass, 8))
{
alert("口令8!");
form.userpass.focus();
return false;
}
return true;
}
function minLength(str, length)
{
if(str.length>=length)
return true;
else
return false;
}
function maxLength(str, length)
{
if(str.length <= length)
return true;
else
return false;
}
</script>
<html>
<head>
<title>用户登录</title>
</head>
<body>
<h2>用户登录</h2>
<form name="form1" action="login" method="post" onsubmit="return isValidate(form1)">
用户名:<input type="text" name="username"><br />
口令:<input type="password" name="userpass"><br />
<input type="reset" value="重置">
<input type="submit" value="提交"><br />
</form>
</body>
</html>
success.jsp代码:
<%@ page contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>登录成功</title>
</head>
<body>
<h2>${sessionScope.userid}hello!</h2>
</body>
</html>
failure.jsp代码:
<%@ page contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>登录失败</title>
</head>
<body>
<h2>用户名或者口令不正确,请<a href="login.jsp">重新登录!</a></h2>
</body>
</html>
6、项目部署到tomcat服务器中
点击window--->show view--->servers如下所示
如果已有项目,将项目移除后,右键点击clean,再双击,可以看到如下页面:
选择第二个,use Tomcat installation(takes control of Tomcat installation)再点击Deploy path右边的Browse,选择tomcat目录下的web应用目录,Ctrl+s保存。
7、启动
run--->run as--->run on server;
Next--->选择项目--->Add>--->Finish。
8、浏览器
输入http://localhost:8080/test/login.jsp,用户名:zhangsan,口令:wangwu
中文乱码
response.setCharacterEncoding("UTF-8");
其他问题
Several ports (8005, 8080, 8009) required by Tomcat v8.5 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).
直接在任务管理器中关闭tomcat。