Servlet啊,就像是咱们Web应用的幕后英雄,它默默地处理着来自浏览器的请求,并生成响应。它就像是咱们家里的路由器,负责把网络请求转发到正确的处理单元,并把处理结果返回给浏览器。
刚开始接触Servlet时,你可能会觉得它有点枯燥。不就是写几个方法,处理一下请求和响应嘛。但千万别小看它,它可是构建Web应用的基础!
举个栗子:咱们来写一个简单的Servlet,当用户访问某个URL时,就显示一句“Hello, World!”。
java复制代码
import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public HelloWorldServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");response.getWriter().println("<h1>Hello, World!</h1>");}}这段代码很简单,但它包含了一个Servlet的基本结构。咱们需要在web.xml文件里注册这个Servlet,或者更现代一点,用注解来注册。然后,当用户访问这个Servlet对应的URL时,Tomcat服务器就会调用doGet方法,生成一个包含“Hello, World!”的HTML页面。
小技巧:在写Servlet时,咱们尽量把业务逻辑和显示逻辑分开。Servlet负责处理业务逻辑,比如验证用户输入、调用数据库啥的。而显示逻辑嘛,咱们可以交给JSP来处理。
JSP:动态网页的魔法师说完Servlet,咱们再来聊聊JSP。JSP就像是动态网页的魔法师,它允许咱们在HTML里嵌入Java代码,生成动态的网页内容。它就像是咱们给网页加了个大脑,让网页能够听懂咱们的话,还能和咱们互动。
举个栗子:咱们来写一个简单的JSP页面,显示当前的系统时间。
jsp复制代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>当前时间</title></head><body><h1>当前时间是:<%= new java.util.Date() %></h1></body></html>这段代码很简单,但它展示了JSP的基本用法。咱们在HTML里用<%= %>标签嵌入了Java代码,用来显示当前的系统时间。当用户访问这个JSP页面时,Tomcat服务器就会执行里面的Java代码,生成一个包含当前时间的HTML页面。
小技巧:在JSP里,咱们尽量别写太多的Java代码。不然啊,代码可就显得乱糟糟的啦!咱们可以把业务逻辑放在Servlet里,JSP页面只负责显示数据就好啦。
Servlet与JSP的联手:打造企业级Web应用说了这么多,咱们终于要动手打造企业级Web应用了!别担心,咱们用Servlet和JSP联手,一定能搞定!
举个栗子:咱们来做一个简单的用户登录功能。当用户填写用户名和密码并提交表单时,Servlet就会接收到请求,验证用户名和密码。如果验证成功,就跳转到欢迎页面;如果失败,就显示错误信息。
Servlet代码:
java复制代码
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;@WebServlet("/login")public LoginServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String username = request.getParameter("username");String password = request.getParameter("password");// 这里咱们简单验证一下用户名和密码if ("admin".equals(username) && "123456".equals(password)) {response.sendRedirect("welcome.jsp");} else {request.setAttribute("error", "用户名或密码错误");request.getRequestDispatcher("/login.jsp").forward(request, response);}}}JSP代码(login.jsp):
jsp复制代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>登录</title></head><body><h1>用户登录</h1><form action="login" method="post">用户名:<input type="text" name="username"><br>密码:<input type="password" name="password"><br><input type="submit" value="登录"></form><%String error = (String) request.getAttribute("error");if (error != null) {out.println("<p style='color:red'>" + error + "</p>");}%></body></html>JSP代码(welcome.jsp):
jsp复制代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>欢迎</title></head><body><h1>欢迎,管理员!</h1></body></html>这段代码展示了Servlet和JSP的联手作战。咱们在login.jsp页面里放了一个登录表单,当用户填写用户名和密码并提交时,LoginServlet就会接收到请求,验证用户名和密码。如果验证成功,就重定向到welcome.jsp页面;如果失败,就把错误信息传递给login.jsp页面,并显示给用户看。
常见错误:在写Servlet和JSP时啊,咱们得注意几个常见的错误。比如啊,别忘了在web.xml文件里注册Servlet,或者用注解来注册。还有啊,JSP页面里的Java代码尽量别写太多,不然可就显得乱糟糟的啦!最后啊,咱们得注意异常处理,别让程序崩溃啦!
动手实践:打造自己的Web应用说了这么多啊,咱们终于要动手打造自己的Web应用了!别担心啊,咱们已经掌握了Servlet和JSP的基本用法啦!咱们可以试着做一个简单的购物车功能啊,或者一个用户管理系统啥的。动手实践啊,才是检验真理的唯一标准!
温馨提醒:在动手实践时啊,咱们得注意代码的可读性和可维护性。别写得太乱啦!还有啊,咱们得注意异常处理和日志记录啊,这样才能让咱们的应用更加健壮和可靠!
好啦啊,这次咱们就聊到这里啦!咱们已经掌握了Java Servlet与JSP的基本用法啦!接下来啊,咱们就可以动手打造自己的企业级Web应用啦!加油啊小伙伴们!期待你们的佳作哦!