JSP环境及其第一个动态网页

环境

tocmat8.5
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。

猜你喜欢

转载自blog.csdn.net/essity/article/details/78513529