可否只用Servlet和JSP呢,请不要用javaScript
时间: 2024-03-15 22:42:11 浏览: 177
当然可以!Servlet和JSP可以完全满足一个Web应用的开发需求,而JavaScript只是其中的一种辅助技术。在使用Servlet和JSP开发Web应用时,可以使用JSTL和EL表达式来完成页面的动态展示,也可以使用Java代码来完成前后端数据的交互。同时,使用Servlet和JSP还可以充分利用Java的面向对象特性,实现代码的复用和封装。所以,如果你不想使用JavaScript,完全可以使用Servlet和JSP来开发Web应用。
相关问题
请用servlet和jsp制作一个登陆和登出的系统
好的,下面是一个使用Servlet和JSP制作的登陆和登出系统的示例代码。
首先,我们需要创建一个名为`LoginServlet`的Servlet,用于处理用户登陆的请求。以下是该Servlet的代码:
```java
package com.example.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("/login")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
// 在实际应用中,这里应该是查询数据库或调用其他API验证用户名和密码是否正确
if ("admin".equals(username) && "password".equals(password)) {
HttpSession session = request.getSession();
session.setAttribute("username", username);
response.sendRedirect("index.jsp");
} else {
response.sendRedirect("login.jsp?error=1");
}
}
}
```
在上述代码中,我们首先从request对象中获取用户输入的用户名和密码,然后判断它们是否正确。在实际应用中,这里应该是查询数据库或调用其他API来进行验证。如果用户名和密码正确,就创建一个HttpSession对象,并将用户名存储在该对象中。最后,我们使用`response.sendRedirect()`方法将用户重定向到名为“index.jsp”的主页。如果用户名和密码不正确,则将用户重定向到名为“login.jsp”的登陆页面,并在URL中添加一个名为“error”的参数,表示登陆失败。
接下来,我们需要创建一个名为“LogoutServlet”的Servlet,用于处理用户登出的请求。以下是该Servlet的代码:
```java
package com.example.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("/logout")
public class LogoutServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(false);
if (session != null) {
session.invalidate();
}
response.sendRedirect("login.jsp");
}
}
```
在上述代码中,我们首先从request对象中获取当前会话的HttpSession对象,然后将该对象标记为无效。最后,我们使用`response.sendRedirect()`方法将用户重定向到名为“login.jsp”的登陆页面。
最后,我们需要创建两个JSP页面,分别用于登陆和登出。以下是它们的代码:
`login.jsp`
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登陆页面</title>
</head>
<body>
<h1>登陆页面</h1>
<% if (request.getParameter("error") != null) { %>
<p style="color: red;">用户名或密码错误,请重试!</p>
<% } %>
<form method="post" action="login">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required><br>
<button type="submit">登陆</button>
</form>
</body>
</html>
```
在上述代码中,我们首先输出了一个标题为“登陆页面”的H1标签。如果请求URL中包含名为“error”的参数,则输出一个红色字体的错误提示信息。接着,我们创建一个表单,使用POST方法将用户名和密码提交到名为“login”的Servlet中。最后,我们创建了一个提交按钮,用于提交表单。
`index.jsp`
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>主页</title>
</head>
<body>
<h1>欢迎您,<%= session.getAttribute("username") %>!</h1>
<p>您已经成功登陆,可以进行其他操作了。</p>
<form method="get" action="logout">
<button type="submit">退出登陆</button>
</form>
</body>
</html>
```
在上述代码中,我们首先输出了一个标题为“欢迎您,${session.getAttribute("username")}!”的H1标签,其中`${session.getAttribute("username")}`会被替换为当前会话中存储的用户名。接着,我们输出了一段简单的提示信息。最后,我们创建了一个表单,使用GET方法将请求提交到名为“logout”的Servlet中。该表单包含一个提交按钮,用于触发退出登陆操作。
注意:为了使上述示例代码能够正常运行,你需要将它们放置在一个名为“com.example”的Java包中,并且在Web应用的部署描述符文件(即web.xml)中配置Servlet和URL映射。你还需要将JSTL库和Servlet API库添加到项目的类路径中。
用Servlet和jsp
使用Servlet和JSP也可以实现数据库数据在前端页面的展示,具体步骤如下:
1. 编写Servlet代码来连接数据库,并将数据存储在request或session中,如:
```java
public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 连接数据库,查询数据
List<MyData> dataList = getDataFromDB();
// 将数据存储在request中
request.setAttribute("dataList", dataList);
// 转发到JSP页面
RequestDispatcher dispatcher = request.getRequestDispatcher("/myJsp.jsp");
dispatcher.forward(request, response);
}
}
```
2. 在JSP页面中获取Servlet中存储的数据,并进行展示,如:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>My JSP Page</title>
</head>
<body>
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<c:forEach var="data" items="${dataList}">
<tr>
<td>${data.id}</td>
<td>${data.name}</td>
<td>${data.age}</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
```
在JSP页面中使用JSTL标签库中的forEach标签来遍历Servlet中传过来的数据,并将数据展示在表格中。
需要注意的是,Servlet和JSP的使用需要在Java Web开发环境中,如Tomcat等Web服务器中进行。同时,需要注意SQL注入等安全问题。
阅读全文