Tag: spring mvc

Spring 3 MVC Hibernate 3.5.4 hibernateTemplate没有关闭连接(非事务性)

我们在没有事务的情况下使用Spring MVC 3.0.5.RELEASE和Hibernate 3.5.4-Final。 每次我们通过hibernateTemplate访问数据库时,它都会创建一个新连接,并且似乎永远不会关闭它们。 更新:我们已将maxActive和maxIdle设置为5.应用程序在尝试打开第6个连接时将挂起。 我们允许100个mysql连接。 我们的hibernateTemplate是Autowired,因此我们不直接管理这些连接。 关于如何确保这些连接关闭的任何想法? 这是我们用于hibernate的弹簧配置: ${jdbc.driverClassName} ${jdbc.url} ${jdbc.username} ${jdbc.password} 5 5 true 30 org.hibernate.dialect.MySQLDialect true after_statement true 这是我们的HibernateRepository实现: package com.dataAccess.impl; import org.hibernate.criterion.DetachedCriteria; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.stereotype.Repository; import java.util.List; @Repository public abstract class HibernateRepositoryImpl implements com.dataAccess.Repository { @Autowired protected HibernateTemplate hibernateTemplate; public List find(String query) { return hibernateTemplate.find(query); } […]

Servlet会话超时

我正在编写我的SPring MVC Web应用程序。 我将会话时间设置为10080分钟,等于1周。 现在我想让用户每次打开浏览器时都登录: sessionService.setcurrentUser(myuser); HttpSession session = request.getSession(); Cookie cookie = new Cookie(“JSESSIONID”, session.getId()); cookie.setMaxAge(timeout); response.addCookie(cookie); 我的cookie Max Age应该与会话超时相同吗? cookie.setMaxAge(10080); 这是好的做法吗?

使用Spring(mvc)上传和下载文件

我是Spring MVC的新手,虽然不是Java新手。 我正在尝试上传和下载数据库的数据。 我在这个网站上做了类似的事情: file-upload-and-download-using-spring-mvc 。 上传文件成功但当我想下载文件时,下载成功但文件已损坏。 为什么会这样? 以及如何解决? 这是我的下载控制器.. @RequestMapping(value = “/listeContenuDownload.id”, method = RequestMethod.GET) public ModelAndView responseEachReportDownload(ModelMap model, HttpServletRequest request, HttpSession session, @ModelAttribute(“uploadForm”) FileUploadForm uploadForm, Model map, HttpServletResponse response) throws IOException, ServletRequestBindingException, SQLException { String tiket = request.getParameter(“idTiket”); complaintdata cd = new GoIndex().getCheckStatusReport(tiket); String nameFileReport = cd.getNameFileReport(); String extFileReport = cd.getExtFileReport(); byte[] file […]

Spring MVC – 无法为JSP编译类

我正在关注VirtualPairProgrammers的Spring MVC课程,他们提供的工作空间似乎有些问题。 运行代码时出现以下错误。 org.apache.jasper.JasperException:无法为JSP编译类:生成的java文件中的行:1处发生错误无法解析java.io.ObjectInputStream类型。 它是从所需的.class文件间接引用的 出了什么问题? 这是我的控制器中的代码: @RequestMapping(“/viewAllBooks”) public ModelAndView viewAllBooks() { List allBooks = bookService.getEntireCatalogue(); return new ModelAndView(“/displayAllBooks.jsp”,”allBooks”,allBooks); } 这是JSP文件: All books for our store ${nextBook.title} by ${nextBook.author} <form method='post' action='’>

弹簧数据rest场转换器

我很难在spring数据REST项目(控制器免费应用程序和严格的java配置)上使用我的自定义转换器。 我有两个实体,一个员工和一个州。 这种关系是@ManyToOne,我相信大家都知道。 无论如何,问题是将state字段(字段名称为state)从String转换为State对象,并将setState()类中的setState()转换为数据库的持久性。 package com.hr.domain; @Entity public class Employee implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = “state_id”, nullable = true) private Long id; private String firstname; private State state; @StateConverter @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = “employee_state_id_fk”, nullable = false, insertable = true, updatable = true) […]

我可以在Spring MVC的Interceptor中使用RedirectAttributes或FlashMap吗?

我有一个拦截器来处理用户会话。 如果user属性不存在,则拦截器将重定向到登录页面。 我想发送带有重定向url的session timeout消息,但我不想在url中显示该消息。 我为RedirectAttributes或FlashMap搜索了很多FlashMap ,但我找不到任何好的解决方案。 public class UserSessionInterceptor extends HandlerInterceptorAdapter { protected final Logger logger = LoggerFactory.getLogger(this.getClass()); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { User user = (User)request.getSession().getAttribute(CommonConstants.USER_SESSION_KEY); if (user == null) { String msg = String.format(“session timeout”); logger.error(msg); // response.sendRedirect(“/signin?errorMessage=” + msg); //I don’t want to do this.. […]

spring无阻碍rest“发送并忘记”

我正在编写一个无阻塞的Spring Rest控制器。 我的客户应发送请求,不关心响应,也不需要等待。 这是我的服务器代码: @RestController @EnableAsync public class testController { @RequestMapping(value = “test”, method = RequestMethod.GET) public ResponseEntity test() throws InterruptedException { timeConsumingMethod(); System.out.println(“I’m should be first”); return new ResponseEntity(“the server is processing your request”, HttpStatus.OK); } @Async private void timeConsumingMethod() throws InterruptedException { Thread.sleep(1000*5); System.out.println(“I’m should be second!”); } 但是,当我使用(POSTMAN,Chrome等)调用http:// localhost:8181 / test时 ,我在服务器日志中得到以下信息: […]

如何通过jackson生成器html转义值

我们使用Spring及其内置的MappingJacksonHttpMessageConverter生成大量JSON对象。 太棒了 但是现在我想要html转义我的(任何类型)对象的String值以防止XSS。 那么,我该如何解决这个问题呢? 我首先想到我可以编写一个自定义的Object mapper并将其放入MappkingJacksonHttpMessageConverter中。 但是,writeValue接受一个Object,我不希望这样,我想让它的字段迭代。 我打赌jackson转换器也需要这样做,而不是自己这样做。 所以我想影响那一部分。 现在我最终得到了一个SerializerProvider接口。 ObjectMapper调用标准实现(StdSerializerProvider)。 所以我想在某处覆盖/影响负责设置值的方法。 那可能吗? 据我所知,很难扩展。 我无法覆盖StdSerializerProvider来覆盖ObjectMapper使用的方法。 也许我需要覆盖另一个? 或者,这可能是完全错误的,我需要从一个完全不同的角度来看待它? 有什么想法吗? 哦顺便说一句,自己实现SerializerProvider并创建一个委托给StdSerializerProvider的composit,可能是可能的,但我宁愿不这样做。 (我自己在实例化StdSerializerProvider时遇到了问题)。 任何想法都表示赞赏!

Spring MVC表单validation:如何使字段可选?

我有一个表单(Spring 3 MVC项目),我正在使用DTO(数据传输对象)进行数据validation。 数据被发送到控制器,我正在使用BindingResult.hasErrors()方法和适当的注释检查它的有效性。 我要简化这里,因为我遇到了数字字段的问题。 DTO: public class Item { private String discount; @Digits(integer = 15, fraction = 2) public String getDiscount() { return discount; } } 如果我提交没有在discount字段中写入的表单, BindingResult.hasErrors()将返回带有消息的true numeric value out of bounds (. expected) 。 我想要实现的是discount字段可以为空,但如果在其中写入某些内容,它应该是@Digits注释提供的数字格式。 我怎样才能做到这一点?

在Spring MVC / Security中设置和读取cookie

我是Spring新手,我需要在单击“登录”按钮时设置自定义cookie,然后该cookie将在webapp中变为红色。 这样做的最佳做法是什么? 此外,这带来了如何在webapp的每个页面上阅读它的问题? 我以为我可以用JavaScript设置cookie,稍后通过自定义filter读取它(它会从请求中读取cookie,将其设置为属性并将其发送给控制器。 这个想法是否正确? 或者我应该在其他地方设置cookie(如果是这样,为什么?) 更新1: 我想要实现的目标:我在登录页面上有下拉框(语言选择器),它有一些值(语言代码,例如“en”),所选值需要设置为cookie(例如“lang”)和对于i18n,“lang”cookie将在页面上显示为红色。 我已经让i18n工作了,但我需要阅读“lang”cookie来设置所选语言。 更新2: 我做了我想做的事,但它并不完全干净: 我通过Javascript或jQuery设置cookie,确切地说,当用户选择或更改的选择时,Javascript会将语言值注入cookie(例如en): HTML: English JS: var cookie = { set: function($this) { var now = new Date(); var time = now.getTime(); var expireTime = time + 1000*36000; now.setTime(expireTime); document.cookie = ‘lang=’ + $this.val() +’;expires=’+now.toGMTString()+’;path=/’; } } $(‘#selectLanguage’).change(function(event) { cookie.set($(this)); }); 然后我创建了一个名为CookieFilter.java的新Filer : public class CookieFilter […]