java - servlet 中的 Beanutils 有问题
问题描述
当我在 servlet 中使用 Beanutils 时,我发现这不起作用
package servlet.web15;
import org.apache.commons.beanutils.BeanUtils; 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 java.io.IOException;
import java.io.PrintWriter; import
java.lang.reflect.InvocationTargetException; import java.util.HashMap;
import java.util.Map;
@WebServlet(name = "RegisterServlet", urlPatterns = "/register")
public class RegisterServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter responseWriter = response.getWriter();
Map<String, String[]> parameterMap = request.getParameterMap();
for (Map.Entry<String, String[]> entry :
parameterMap.entrySet()) {
String name = entry.getKey();
for (String str :
entry.getValue()) {
responseWriter.println(name + ": " + str);
}
}
Bean bean = new Bean();
responseWriter.println(bean.toString());
try {
BeanUtils.populate(bean, parameterMap);
} catch (IllegalAccessException e) {
responseWriter.println(e.getCause());
} catch (InvocationTargetException e) {
responseWriter.println(e.getCause());
}
responseWriter.println(bean.toString()); // this statement doesn't work, something wrong with the try and catch
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
html片段是这样的
<div class="form form-signup">
<form action="/register" method="post">
<lable>FULL NMAE</lable>
<input type="text"
placeholder="Your full name" name="name">
<lable>E-MAIL</lable>
<input type="email"
placeholder="Your e-mail" name="email">
<lable>PASSWORD</lable>
<input type="password"
placeholder="Your password" name="password">
<p class="terms">
<input type="checkbox">
I agree all statments in
<a href="#" class="lined-link">terms of service</a>
</p>
<input type="submit"
class="form-btn"
value="Sign Up"/>
<a href="#" class="lined-link to-signin-link">I'm already member</a>
</form>
</div>
这是 Bean.class
package servlet.web15;
public class Bean {
private String name;
private String email;
private String password;
public Bean() {
}
public Bean(String name, String email, String password) {
this.name = name;
this.email = email;
this.password = password;
}
@Override
public String toString() {
return "Bean{" +
"name='" + name + '\'' +
", email='" + email + '\'' +
", password='" + password + '\'' +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
所以我尝试寻求帮助,然后,有人告诉我这是一个错误。于是我按照链接的内容做了,修改了plugin文件夹的内容,但是这样不行,我的想法被打断了。
我该如何解决这个问题?Tomcat版本:9.0.12
ps:错误信息与该链接相同。就如
11-Apr-2017 18:20:06.973 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory C:\servers\apache-tomcat-8.5.13\webapps\manager
11-Apr-2017 18:20:07.084 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory C:\servers\apache-tomcat-8.5.13\webapps\manager has finished in 112 ms
解决方案
推荐阅读
- python - 我在 python 中收到 SQL Insert 语法错误
- php - 使用 Laravel Carbon 将 JavaScript 时间转换为 PHP
- reactjs - ios应用程序中未显示文本(REACT-NATIVE)
- javascript - Typescript 全局应用程序状态到应用程序实例
- mstest - 如果 [AssemblyInitialize] 已经存在于 Specflow 的测试项目中,则会出错
- scala - 如何按值从列表中删除元素?
- html - 调整浏览器大小时如何阻止我的网页 div 元素四处移动
- reactjs - react js中的双向数据流
- python - Get Image size from URL
- odoo - 添加约束以阻止用户在导入具有其生成的外部 id 的数据时更新某些字段