1:javaweb实现项目全局编码过滤器功能 2:实现登录过滤器功能 3:在商品列表上增加个“添加”按钮,打开一个页面,里面有表单(某个商品),单击添加功能,将商品信息进行添加后进入到商品展示列表展示添加商品
时间: 2024-02-06 19:12:41 浏览: 59
好的,让我来一一回答你的问题。
1. 要实现全局编码过滤器功能,可以在 web.xml 文件中配置一个字符编码过滤器。具体步骤如下:
- 在 web.xml 文件中添加以下代码:
```
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>com.example.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
```
- 创建一个 EncodingFilter 类,代码如下:
```
public class EncodingFilter implements Filter {
private String encoding;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
encoding = filterConfig.getInitParameter("encoding");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
chain.doFilter(request, response);
}
@Override
public void destroy() {
encoding = null;
}
}
```
2. 要实现登录过滤器功能,可以在 web.xml 文件中配置一个登录过滤器。具体步骤如下:
- 在 web.xml 文件中添加以下代码:
```
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.example.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
```
- 创建一个 LoginFilter 类,代码如下:
```
public class LoginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
HttpSession session = req.getSession(false);
if (session == null || session.getAttribute("user") == null) {
resp.sendRedirect("/login.jsp");
} else {
chain.doFilter(request, response);
}
}
@Override
public void destroy() {
}
}
```
以上代码中,LoginFilter 是一个验证用户是否已登录的过滤器,它会拦截所有 /admin/* 路径下的请求,如果用户未登录,则重定向到登录页面。
3. 要在商品列表上增加“添加”按钮,并且实现添加商品功能,可以按照以下步骤进行:
- 在商品列表页面上添加一个“添加”按钮,代码如下:
```
<a href="/add.jsp">添加</a>
```
- 创建一个 add.jsp 页面,代码如下:
```
<form action="/add" method="post">
商品名称:<input type="text" name="name"><br>
商品价格:<input type="text" name="price"><br>
<input type="submit" value="添加">
</form>
```
- 创建一个 AddServlet 类,代码如下:
```
public class AddServlet extends HttpServlet {
private ProductService productService = new ProductService();
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name = req.getParameter("name");
String price = req.getParameter("price");
Product product = new Product(name, Double.parseDouble(price));
productService.addProduct(product);
resp.sendRedirect("/list.jsp");
}
}
```
以上代码中,AddServlet 是一个添加商品的 Servlet,它接收 POST 请求,并且将商品信息添加到数据库中,然后重定向到商品列表页面。
希望我的回答对你有所帮助。如果你还有其他问题,可以继续问我哦~
阅读全文