环境搭建与第一个Web项目
- 开发环境配置
<!-- 创建Maven Web项目依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
使用IntelliJ IDEA创建Maven Web项目,配置Tomcat 9+服务器,注意设置/WEB-INF/web.xml
部署描述符。
- Servlet基础开发
// HelloServlet.java
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>Hello JavaWeb!</h1>");
}
}
通过注解@WebServlet
配置访问路径,学习请求响应生命周期和线程安全问题。
- JSP与EL表达式
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<body>
<p>当前时间: ${new java.util.Date()}</p>
<% for(int i=0; i<5; i++){ %>
<p>循环条目 <%=i+1%></p>
<% } %>
</body>
</html>
掌握JSP脚本元素、指令标签和EL表达式的基本用法。
博客二:JavaWeb进阶篇 - 分页功能与验证码实现
- 数据库分页实现
// PageBean.java
public class PageBean<T> {
private int currentPage; // 当前页
private int pageSize; // 每页条数
private int totalRecords; // 总记录数
private List<T> dataList; // 数据集合
// 计算总页数
public int getTotalPages() {
return (totalRecords + pageSize - 1) / pageSize;
}
}
// DAO层分页查询
String sql = "SELECT * FROM articles LIMIT ?,?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, (currentPage-1)*pageSize);
ps.setInt(2, pageSize);
通过计算(当前页-1)*每页数量
获取起始偏移量,配合MySQL的LIMIT实现分页。
- 验证码生成与校验
// CaptchaServlet.java
public class CaptchaServlet extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException {
BufferedImage image = new BufferedImage(80, 30,
BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
String randomCode = String.valueOf(new Random().nextInt(8999)+1000);
request.getSession().setAttribute("captcha", randomCode);
g.drawString(randomCode, 20, 20);
ImageIO.write(image, "JPEG", response.getOutputStream());
}
}
// 前端验证
<input type="text" name="captcha">
<img src="/captcha" onclick="this.src='/captcha?t='+Math.random()">
使用BufferedImage生成图形验证码,通过Session存储校验值。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库