您的位置:首页 > Web前端 > JavaScript

用jsp+servlet写一个登陆界面

2015-06-30 22:32 856 查看

用jsp+servlet写一个登陆界面

第一步:先写一个jsp

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'Login.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<form action="/test/LoginServlet">
username:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>

<input type="submit" value="submit">    
<input type="reset" value="reset">

</form>

</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'Login.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<form action="/test/LoginServlet">
username:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>

<input type="submit" value="submit">    
<input type="reset" value="reset">
</form>

</body>
</html>


再写一个class

package firstservlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException

{
String username=req.getParameter("username");
String password=req.getParameter("password");

resp.setContentType("text/html");

PrintWriter out=resp.getWriter();
out.println("<html><head><title>Login result</title></head>");
out.println("<body>username:"+username+"<br>");
out.println("password:"+password+"</body></html>");
out.flush();

}
}


最后配置web.xml文件

<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>firstservlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>


原理

提交是向服务器端发送所填写的信息,现在使在jsp中填写的数据发送到servlet中。

这里有两个问题,第一个:谁提交的?所以必须要给控件设置name,才能知道是哪一个控件传来的值,所以每一个控件后面都有name属性。第二个:提交给谁?我们假设我们会提交给一个叫LoginServlet来接收。所以我们新建一个类叫LoginServlet,该类继承httpServlet。重写doget方法,HttpServletRequest是一个请求对象。发送请求,请求服务器发送表单等信息。里面的getParameter方法返回一个字符串,后面跟的是控件的名字,就是在form表单当中设置的名字。控件的value就传给了该字符串。(也就是获得username中所填写的内容)

配置完xml文件之后,< form>为表单标签,后面的action为表单提交之后提交给谁!!!表示表单一点提交就会提交给/test/LoginServlet资源,就会给服务器发送这个请求,服务器收请求后就开始在xml文件里面寻找LoginServlet资源,实例化firstservlet.LoginServlet,执行firstservlet.LoginServlet的doget方法,获取用户输入的用户名和密码信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  servlet jsp